Tag: 环境variables

docker-compose使用来自.env文件的环境variables

我有一些环境variables,我想在Dockerfile docker-composeconfiguration和Dockerfile 。 我有一个名为.env的环境文件,以便在.env docker-compose文件(我用于这个问题的解决scheme)中使用它们; 但是这些环境variables在节点的Dockerfile是不可访问的。 考虑JMX_PORT , WS_PORT和IP作为我的.env文件中定义的variables; 我在我的Dockerfile为它们中的每一个添加了一个echo ,以检查它们是否被传递给它。 我试图把.env放在节点的env_file部分: version: "2" services: mynode: build: context: . dockerfile: Dockerfile-mynode env_file: – .env ports: – "${JMX_PORT}:${JMX_PORT}" – "${WS_PORT}:${WS_PORT}" 我也试过: version: "2" services: mynode: build: context: . dockerfile: Dockerfile-mynode environment: – IP=${IP} – JMX_PORT=${JMX_PORT} – WS_PORT=${WS_PORT} ports: – "${JMX_PORT}:${JMX_PORT}" – "${WS_PORT}:${WS_PORT}" 而且有一点改变: version: "2" services: […]

如何从Dockerfile shell脚本中的.env文件获取环境variables值?

我如何在shell脚本中访问.env文件中定义的环境variables? .env文件 USERNAME=user PASSWORD=pass Dockerfile …. COPY ./compose/django/celery/worker/start_celery_flower.sh /start_celery_flower.sh RUN sed -i 's/\r//' /start_celery_flower.sh RUN chmod +x /start_celery_flower.sh …. 我尝试在shell脚本中使用$USERNAME ,但这不起作用。 我能够在容器内运行的应用程序中访问这些variables。

如果设置了variables,如何configurationdocker组合使用给定的子网,或者如果不是,select自己?

我在我的泊坞窗撰写文件中有以下networkingconfiguration。 networks: default: ipam: driver: default config: – subnet: ${DOCKER_SUBNET} 当设置DOCKER_SUBNET ,按照预期使用该variables中指定的子网。 当variables没有设置,我得到: ERROR: Invalid subnet : invalid CIDR address:因为variables是空白的(这是完全合理的)。 有没有一种方法来configurationipam驱动程序,如果没有设置DOCKER_SUBNETvariables, DOCKER_SUBNET -compose将select一个可用的子网,如果没有给出ipamconfiguration,通常会这样做?

在与–link链接的Docker容器中访问环境variables

我正在为Docker容器中的应用程序设置开发环境,现在我有这些容器: myapp-data – Holds application source code and log files myapp-phpfpm – Runs the php5-fpm process for Nginx myapp-nginx – Runs the Nginx web server that serves the application 这个设置很好用,我真的很高兴。 但是我的应用程序需要一个MySQL数据库来连接,所以我使用官方的MySQL镜像 ,像这样运行它: sudo docker run –name myapp-mysql -e "MYSQL_ROOT_PASSWORD=iamroot" -e "MYSQL_USER=redacted" -e "MYSQL_PASSWORD=redacted" -e "MYSQL_DATABASE=redacted" -d mysql 这也很好。 但是我的myapp-phpfpm容器需要链接到myapp-mysql容器,以便将MySQL的连接细节公开给我的应用程序。 所以我重新启动我的myapp-phpfpm容器: sudo docker run –privileged=true –name […]

Docker HTTPS访问 – ONLYOFFICE3

我正在关注ONLYOFFICE Docker文档( GITHUB ONLYOFFICE docker HTTPS访问 )以获取以HTTPS运行的ONLYOFFICE文档服务器和社区服务器。 我试过了: 1。 我已经创build了文件中提到的证书文件( .crt , .key , .pem )。 之后,我在家里的dir /home/jw/data/创build了一个名为env.list的文件,内容如下: SSL_CERTIFICATE_PATH=/opt/onlyoffice/Data/certs/onlyoffice.crt SSL_KEY_PATH=/opt/onlyoffice/Data/certs/onlyoffice.key SSL_DHPARAM_PATH=/opt/onlyoffice/Data/certs/dhparam.pem SSL_VERIFY_CLIENT=true 2。 之后,我将目录/home/jw/data/到我的$PATH环境variables中: PATH=$PATH:/home/jw/data/; export PATH 3。 在同一个shell中,我启动了docker容器,如下所示: sudo docker run -i -t -d –name onlyoffice-document-server -p 443:443 -v /opt/onlyoffice/Data:/var/www/onlyoffice/Data –env-file /home/jw/data/env.list onlyoffice/documentserver 4。 文件服务器运行良好。 之后,我开始使用以下社区服务器: sudo docker run -i -t -d –link onlyoffice-document-server:document_server […]

在Docker运行中使用容器环境variables,而不使用bash -c

我有一个WP-CLI容器,我必须运行以下命令: wp –allow-root core config –dbname=$MYSQL_DATABASE –dbuser=$MYSQL_USER –dbpass=$MYSQL_PASSWORD –dbhost=$WP_CLI_MYSQL_HOST –debug 当我在容器中运行bash时,我没有问题,但是当我尝试去做: docker-compose run –rm wordpress-cli –rm core config –dbname=$MYSQL_DATABASE –dbuser=$MYSQL_USER –dbpass=$MYSQL_PASSWORD –dbhost=$WP_CLI_MYSQL_HOST –allow-root –debug 所有环境variables都在主机中而不是容器中进行评估,所以它们被空的传递给容器。 我在这个问题中发现,使用bash -c 'my command'将做的伎俩,但我的ENTRYPOINT是WP命令,所以我想只运行而不使用bash命令。

如何设置多个指向docker上相同值的envvariables?

我有几个容器,我和docker-compose一起运行。 其中之一是mysql,它需要设置一些variables。 我有.env文件中的那些: MYSQL_USER='my_user' MYSQL_PASSWORD='my_password' MYSQL_ROOT_PASSWORD='supersecretpassword' MYSQL_DATABASE='my_database' 我能够成功启动mysql容器。 问题出现在我想使用另一个数据库迁移服务时,需要在.env文件中设置以下variables: SERVICE_DBUSER='my_user' SERVICE_DBPASSWORD='my_password' SERVICE_DBNAME='my_database' 而我想写的( 这不起作用 ),以避免重复,是这样的: SERVICE_DBUSER="$MYSQL_USER" SERVICE_DBPASSWORD="$MYSQL_PASSWORD" SERVICE_DBNAME="$MYSQL_DATABASE" 但docker工人不承认这一点,并没有执行replace。 在docker docs中 ,它也表示expects each line in an env file to be in VAR=VAL format 。 我的问题是,是否有可能避免重复? 非常感谢。

找不到环境参数

我有以下一行脚本: sudo env WORDPRESS_MYSQL_ROOT_PASSWORD="passwd" \ WORDPRESS_MYSQL_USER="wordpress" \ WORDPRESS_MYSQL_PASSWORD="wordpress" \ WORDPRESS_ADMIN_USER="admin" \ WORDPRESS_ADMIN_PASSWORD="admin" \ WORDPRESS_URL="http://0.0.0.0:8080" \ docker run \ –volume "/home/pcmagas/Kwdikas/docker/piwik-with-wordpress/scripts/../data/wordpress/db":/var/lib/mysql \ –volume /home/pcmagas/Kwdikas/docker/piwik-with-wordpress/scripts/../restore/wordpress/db:/docker-entrypoint-initdb.d \ -e MYSQL_ROOT_PASSWORD=$WORDPRESS_MYSQL_ROOT_PASSWORD \ -e MYSQL_DATABASE="wordpress" \ -e MYSQL_USER=$WORDPRESS_MYSQL_USER \ -e MYSQL_PASSWORD=$WORDPRESS_MYSQL_PASSWORD \ mariadb 但由于某种原因,我得到的错误: 错误:未初始化数据库并且未指定密码选项您需要指定MYSQL_ROOT_PASSWORD,MYSQL_ALLOW_EMPTY_PASSWORD和MYSQL_RANDOM_ROOT_PASSWORD之一 这意味着出于某种原因找不到$WORDPRESS_MYSQL_ROOT_PASSWORD环境参数。 你能帮我吗?

在Docker中传递一个JSON文件作为环境variables

我想在Docker运行期间将JSON文件的内容作为环境variables传递。 docker运行是在一个systemd服务文件内初始化的。 我做了这样的事情: export TEMP_CONFIG=$(cat /etc/config.json) 并运行docker集装箱如下: docker run \ –env SERVICE_NAME=${CONTAINER_NAME} \ –env TEMP_CONFIG \ 但是,当我在docker容器内,并尝试回显variables$ {TEMP_CONFIG}它是空的。 root@ip-10-109-7-77:/usr/local/nginx/conf# echo ${TEMP_CONFIG} root@ip-10-109-7-77:/usr/local/nginx/conf# 有没有办法将JSON文件的内容作为环境variables传递? BTW: –env TEMP_CONFIG=$(cat /etc/config.json) \ 以上做法引发exception: docker: Error parsing reference: "\"conf\"" is not a valid repository/tag. config.json的内容是: { "conf" : { "appname" : { "dbhost" : "xxxx", "dbname" : "dbname", "dbuser" : […]

Django无法连接到数据库。

我正在尝试使用docker为我公司的应用程序创build一个开发环境。 出于某种原因,我能够连接到数据库,如果我使用docker run web "bash"然后从shell运行mysql ,但Django不会连接。 Web / Worker节点的Dockerfile如下所示: FROM python:2.7 ENV PYTHONUNBUFFERED 1 ENV DOCKER 1 ENV REDIS_HOST "redis" ENV CASSANDRA_HOST "cassandra" RUN mkdir /code WORKDIR /code ADD . /code/ RUN pip install –default-timeout=100 numpy==1.9.1 RUN pip install –default-timeout=100 scipy==0.15.1 RUN pip install –default-timeout=100 -r requirements_docker.txt #RUN python /code/app/manage.py migrate docker-compose文件如下所示: version: "2" services: […]