代码的构建参考的是Vue CLI的Docker部署文档
https://cli.vuejs.org/zh/guid...
Dockerfile
FROM node:10
COPY ./ /app
WORKDIR /app
RUN npm install && npm run build
FROM nginx
RUN mkdir /app
COPY --from=0 /app/dist /app
COPY nginx.conf /etc/nginx/nginx.conf
运行
# 构建
docker build . -t my-app
# 运行
docker run -d -p 8080:80 my-app
但是还有一些问题没有得到解决:
- 部署到测试环境和生产环境希望连接的后端API URL是一样的,但是build成dist的过程中依赖这个环境变量,构建完成后,COPY到nginx的docker部署,是不受环境变量的影响改变的
- 更加环境写两份Dockerfile或者在Dockerfile添加参数(ARG)的方式改变ENV影响镜像构建的方式虽然可行,但是不能做到镜像的复用,不能呢算完美方案
最终希望能做到:
docker run 的时候传入API URL,达到一份镜像处处部署,同时也方便迁移
你可以直接使用环境变量啊,你可以通过使用 docker run -e传递环境变量啊