Я в любом случае, что я могу построить веб в одном контейнере Docker и развернуть его в другом контейнере Docker? - PullRequest
1 голос
/ 28 октября 2019

Вы знаете, что я сейчас пытаюсь собрать веб в одном Docker-контейнере и использовать том, чтобы получить dist после сборки, и запустить контейнер nginx для развертывания папки dist. Это сценарий docker-compose:

version: '3'
services:
  jump-ui-build:
    image: node:12.13.0
    volumes:
      - ~/jump-ui:/usr/local/app
    working_dir: /usr/local/app
    ports:
      - 8082:8082
    command: bash -c "npm install && npm run build:test"

  nginx:
    restart: always
    image: nginx:1.16.1
    ports: 
      - 80:80
      - 443:443
    volumes:
      - ~/jump-ui/dist:/usr/share/nginx/html
      - ~/nginx-log:/var/log/nginx
    depends_on:
      - jump-ui-build

Служба jump-ui-build запускается и успешно завершается и создает папку dist в папке jump-ui, но когда я пытаюсь выполнить команду «docker exec -it»чтобы получить доступ к службе nginx и перейти в / usr / share / nginx / html, это папка empy, поэтому мне нужно вручную запустить службу jump-ui-build и запустить службу nginx, и она успешно развернута?

Есть ли способ изменить сценарий yum, который я могу автоматически автоматически создавать и развертывать в Интернете?

1 Ответ

2 голосов
/ 28 октября 2019

вы можете использовать multistage Dockerfile:

FROM node:12.13.0
WORKDIR /usr/local/app
RUN bash -c "npm install && npm run build:test"

FROM nginx:1.16.1
COPY --from=0 /usr/local/app /usr/share/nginx/html
EXPOSE 80 443

, таким образом, вы получите одно nginx изображение, создайте его:

docker build -t my_image .

ваш состав должен быть:

nginx:
    restart: always
    image: my_image
    ports: 
      - 80:80
      - 443:443
    volumes:
      - $HOME/nginx-log:/var/log/nginx
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...