[英]Dockerfile does not replace text but command line does, possible bug?
[英]Dockerfile - possible command line argument?
我在名為${APP_NAME}
的Dockerfile中有一個值。 它是什么? 如果這是bash腳本,我會假設它是某種變量,但尚未在任何地方為其賦值。 它是命令行參數嗎? 如果是這樣,當我想用它調用docker-compose
時如何傳遞它?
作為參考,Docker文件如下所示:
version: '2'
services:
nginx:
container_name: ${APP_NAME}_nginx
hostname: nginx
build:
context: ./containers/nginx
dockerfile: Dockerfile
ports:
- "80:80"
- "443:443"
volumes:
- .:/app
links:
- phpfpm
networks:
- backend
phpfpm:
container_name: ${APP_NAME}_phpfpm
hostname: phpfpm
expose:
- "9000"
build:
context: ./containers/php-fpm
dockerfile: Dockerfile
working_dir: /app
volumes:
- .:/app
links:
- mysql
networks:
- backend
mysql:
container_name: ${APP_NAME}_mysql
hostname: mysql
build:
context: ./containers/mysql
dockerfile: Dockerfile
volumes:
- ./storage/mysql:/var/lib/mysql
- ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
environment:
- MYSQL_DATABASE=${DB_DATABASE}
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
ports:
- "33061:3306"
expose:
- "3306"
networks:
- backend
networks:
backend:
driver: "bridge"
實際上,我可能會對Docker提出很多問題,因為我之前從未真正使用過它,因此對Dockerfile語法的引用會有所幫助。
這意味着您的項目.env文件中可能存在某個位置,其中包含docker compose必需的變量。 您可以在官方docker compose文檔中找到有關它的更多信息。 它說您可以使用.env文件設置環境變量的默認值,Compose會自動尋找該文件。 在shell環境中設置的值將覆蓋.env文件中設置的值。 嘗試在此處查找更多信息: https : //docs.docker.com/compose/compose-file/#variable-substitution
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.