【发布时间】:2021-12-20 04:54:46
【问题描述】:
我有一个与 docker 一起服务的 Vue 应用程序,目前我想使用环境变量来定位特定的项目 repo。但是当我设置环境变量时,它并没有在 dockerfile 中提取,
我在设置中做错了什么?
NPM 脚本。
scripts: {
"build:project1": "vue-cli-service build src/project1/main.js",
"deploy:project1": "cross-env PROJECT_REPO=project1 bash build_deploy.sh"
}
build_deploy.sh
#!/bin/bash
docker build -t ${PROJECT_REPO} .
Dockerfile
# build stage
FROM node:lts-alpine as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build:${PROJECT_REPO}
# production stage
FROM nginx:stable-alpine as production-stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
【问题讨论】:
-
如果这个 dockerfile 被设计为使用环境变量,我希望在某处看到
ARG。 -
我尝试在 build_deploy.sh 文件中使用
--buid-arg,但无法使用RUN npm run build:${PROJECT_REPO} -
澄清:我希望在 dockerfile 中有一个
ARG,而不是在用于构建的命令中。