这是我关于这个特定问题的第二篇文章。我已经删除了那个问题,因为我找到了一种更好的方法来解释我到底想做什么。
本质上,我想将命令行参数传递给docker-compose up我的 Vue.js Web 应用程序并将它们设置为环境变量。目标是能够更改环境变量而无需每次都重建容器。
我遇到了几个问题。这是我的 docker 文件:
用于 Vue.js 应用程序的 Dockerfile。
FROM node:latest as build-stage
WORKDIR /app
# Environment variable.
ENV VUE_APP_FOO=FOO
COPY package*.json ./
RUN npm install
COPY ./ .
RUN npm run build
FROM nginx as production-stage
RUN mkdir /app
COPY --from=build-stage /app/dist /app
COPY nginx.conf /etc/nginx/nginx.conf
Run Code Online (Sandbox Code Playgroud)
VUE_APP_FOO通过 Node 的process.envobjected存储和访问,并且似乎在构建时传入。
还有我的 docker-compose.yml:
version: '3.5'
services:
ms-sql-server:
image: mcr.microsoft.com/mssql/server:2017-latest-ubuntu
ports:
- "1430:1433"
api:
image: # omitted (pulled from url)
restart: always
depends_on: …Run Code Online (Sandbox Code Playgroud)