问题:无论如何,我可以在一个 docker 容器中构建 web 并将其部署在另一个 docker 容器中吗?

你知道我现在正在尝试在一个 docker 容器中构建 web,并在构建后使用 volume 来获取 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 服务运行并成功完成并在 jump-ui 文件夹下生成 dist 文件夹,但是当我尝试“docker exec -it”访问 nginx 服务并切换到 /usr/share/nginx/html 时,它是empy文件夹,所以我必须手动启动jump-ui-build服务并启动nginx服务,它部署成功了吗?

无论如何修改我可以成功构建和自动部署网络的 yum 脚本?

解答

你可以使用multistageDockerfile:

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
Logo

开发云社区提供前沿行业资讯和优质的学习知识,同时提供优质稳定、价格优惠的云主机、数据库、网络、云储存等云服务产品

更多推荐