Dockerfile-可能的命令行参数?

时间:2018-09-07 18:29:13

标签: docker

我在一个名为${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语法的引用会有所帮助。

1 个答案:

答案 0 :(得分:1)

这意味着您的项目.env文件中可能存在某个位置,其中包含docker compose必需的变量。您可以在官方docker compose文档中找到有关它的更多信息。它说您可以使用.env文件设置环境变量的默认值,Compose会自动寻找该文件。在shell环境中设置的值将覆盖.env文件中设置的值。尝试在此处找到更多信息:https://docs.docker.com/compose/compose-file/#variable-substitution