gpt4 book ai didi

docker - 将 args 从 docker-compose 传递到 Dockerfile

转载 作者:行者123 更新时间:2023-12-02 06:57:22 48 4
gpt4 key购买 nike

我的产品环境有以下配置:

docker-compose-prod.yml

version: '3.3'
services:
nginx:
build:
context: nginx
dockerfile: Dockerfile
args:
LANDING_PAGE_DOMAIN: ${LANDING_PAGE_DOMAIN}
container_name: nginx
networks:
- app-network

Dockerfile

FROM nginx:alpine

COPY nginx.conf /etc/nginx/nginx.conf
COPY production/* /etc/nginx/conf.d/

ARG LANDING_PAGE_DOMAIN
RUN sed -i s/{LANDING_PAGE_DOMAIN}/${LANDING_PAGE_DOMAIN}/g /etc/nginx/conf.d/landing.conf

EXPOSE 80 443

因此,当我尝试构建它时,我收到了下一个警告:

docker-compose -f docker-compose.production.yml build --build-arg LANDING_PAGE_DOMAIN="test.com" nginx

WARNING: The LANDING_PAGE_DOMAIN variable is not set. Defaulting to a blank string.

我哪里出错了?

最佳答案

关键字ARGFROM指令之前和之后具有不同的作用域

尝试在 Dockerfile 中使用 ARG 两次,和/或者您可以尝试 ENV 变量

ARG LANDING_PAGE_DOMAIN
FROM nginx:alpine

COPY nginx.conf /etc/nginx/nginx.conf
COPY production/* /etc/nginx/conf.d/

ARG LANDING_PAGE_DOMAIN
ENV LANDING_PAGE_DOMAIN=${LANDING_PAGE_DOMAIN}

RUN sed -i s/{LANDING_PAGE_DOMAIN}/${LANDING_PAGE_DOMAIN}/g /etc/nginx/conf.d/landing.conf

EXPOSE 80 443

关于docker - 将 args 从 docker-compose 传递到 Dockerfile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58695423/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com