Так что в настоящее время я использую MEAN Stack (но MySQL вместо MongoDB). И я использую Cypress для тестирования e2e. В настоящее время я докернизирую свое приложение и столкнулся со следующей проблемой:
Сначала я развернул angular и контейнер узла. Затем, после создания веб-приложения angular, я запускаю кипарисовый контейнер. Проблема в том, что localhost моего кипарисового контейнера не может подключиться к localhost angular. Что не является проблемой с Node и Angular подключением.
, поэтому я сталкиваюсь со следующей ошибкой
Cypress could not verify that this server is running:
> http://localhost:4200
We are verifying this server because it has been configured as your `baseUrl`.
Cypress automatically waits until your server is accessible before running tests.
We will try connecting to it 3 more times...
We will try connecting to it 2 more times...
We will try connecting to it 1 more time...
Cypress failed to verify that your server is running.
Я использую отдельные файлы Docker, а не Docker -compose в качестве здания Время файла angular довольно большое, поэтому я не могу использовать псевдоним docker -compose (поскольку angular docker все еще строится, когда кипарис запускает команду)
Есть ли способ решить эту проблему?
Для получения дополнительной информации мои Dockerfile приведены ниже: Dockerfile- Angular
FROM node:10.16.3
# set working directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# add `/app/node_modules/.bin` to $PATH
ENV PATH /usr/src/app/node_modules/.bin:$PATH
# install and cache app dependencies
COPY package.json /usr/src/app/package.json
RUN npm install \
&& npm install -g @angular/cli@6.2.9
# add app
COPY . /usr/src/app
EXPOSE 4200
# start app
CMD ng serve --host 0.0.0.0
Node API Dockerfile
FROM node:10.16.3
WORKDIR /usr/src/app/API
ENV PATH /usr/src/app/API/node_modules/.bin:$PATH
COPY package.json /usr/src/app/API/package.json
RUN npm install
COPY . /usr/src/app/API
EXPOSE 4711
CMD ["node","server"]
Cypress DockerFile
FROM cypress/base:10.11.0
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# add `/app/node_modules/.bin` to $PATH
ENV PATH /usr/src/app/node_modules/.bin:$PATH
# install dependencies
COPY . /usr/src/app
RUN npm install --save-dev cypress
RUN $(npm bin)/cypress verify
RUN npm run cypress:run
Кроме того, эта настройка предназначена для разработки, а не для производства.
Обновление Я не использую файл композиции. Я запускаю контейнер docker индивидуально.
Angular docker run -v ${PWD}:/usr/src/app -p 4200:4200 --name angular -it angular
Узел docker run -v ${PWD}:/usr/src/app/API -p 4711:4711 --name api -it api
Кипарис docker run -v ${PWD}:/usr/src/app --name cypress -it cypress