×

如何在docer-composer.yml中使用变量

2023-04-06 16:35:46 Falcon

在docker-compose.yml中使用变量可以帮助我们避免硬编码一些敏感信息,比如密码、密钥等,同时也可以方便地为不同环境设置不同的变量。下面是在docker-compose.yml中使用变量的方法:

  1. 定义变量:在docker-compose.yml文件所在目录中创建一个.env文件,并在其中定义需要使用的变量,例如:

    DB_PASSWORD=mysecretpassword
    

    在这个例子中,我们定义了一个名为DB_PASSWORD的变量,并将其值设置为mysecretpassword。

  2. 在docker-compose.yml文件中使用变量:在docker-compose.yml文件中,可以使用${VARIABLE_NAME}语法引用变量,例如:

    services:
      db:
        image: mysql
        environment:
          MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
    

    在这个例子中,我们在db服务的环境变量中引用了DB_PASSWORD变量,将其值作为MYSQL_ROOT_PASSWORD的值。

  3. 启动服务:在docker-compose.yml文件所在目录中,执行以下命令启动服务:

    docker-compose up
    

    Docker Compose会自动读取.env文件中的变量,并将其传递给服务。

需要注意的是,如果使用了变量,需要确保.env文件中定义的变量名称与docker-compose.yml文件中引用的变量名称一致。另外,如果需要在多个环境中使用不同的变量值,可以为每个环境创建不同的.env文件,并在启动服务时指定要使用的文件,例如:

docker-compose --env-file .env.prod up

在这个例子中,我们使用.env.prod文件中定义的变量启动服务。

本文收录于