无论如何,我可以在一个 docker 容器中构建 web 并将其部署在另一个 docker 容器中吗?
·
问题:无论如何,我可以在一个 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 脚本?
解答
你可以使用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
更多推荐
所有评论(0)