0

我正在尝试在 docker 容器中部署我的 PHP 应用程序。使用 docker secret 我想存储 MySQL 数据库的密码。首先,我创建了一个 docker secret mysql_password。我的 docker-compose 文件是 -

version: '3.9'
services:
    php:
        image: 'php:7.2-fpm'
        build:
            context: ./docker
            dockerfile: php.Dockerfile
        volumes:
            - './app:/var/www/html'
        environment:
            MYSQL_PASSWORD_FILE: /run/secrets/mysql_password
        secrets:
            - mysql_password

    nginx:
        image: nginx:latest
        ports:
            - '80:80'
        links:
            - 'php'
        volumes:
            - './app:/var/www/html'
            - './config/nginx:/etc/nginx/conf.d'
secrets:
    mysql_password:
        external: true
  • 当我尝试访问秘密“mysql_password”时,没有返回任何内容。如果我尝试环境元素“MYSQL_PASSWORD_FILE”,它会给我一个秘密路径,即“/run/secrets/mysql_password”。
  • 要访问 PHP 中的环境变量,我使用了 .$_ENV["mysql_password"]
4

1 回答 1

0

在常规环境文件中更改:为喜欢。=

MYSQL_PASSWORD_FILE=/run/secrets/mysql_password

您也可以使用 env 变量:

env_file:
     - ./application_env.env

并将所有变量放入该文件。

于 2021-05-21T11:58:33.357 回答