Vue/React前端项目部署Docker,区分后端请求的URL

新手上路,请多包涵

代码的构建参考的是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 

但是还有一些问题没有得到解决:

  1. 部署到测试环境和生产环境希望连接的后端API URL是一样的,但是build成dist的过程中依赖这个环境变量,构建完成后,COPY到nginx的docker部署,是不受环境变量的影响改变的
  2. 更加环境写两份Dockerfile或者在Dockerfile添加参数(ARG)的方式改变ENV影响镜像构建的方式虽然可行,但是不能做到镜像的复用,不能呢算完美方案

最终希望能做到:

docker run 的时候传入API URL,达到一份镜像处处部署,同时也方便迁移
阅读 2.1k
1 个回答

你可以直接使用环境变量啊,你可以通过使用 docker run -e传递环境变量啊

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题