Tag: 环境variables

将docker-compose环境传递给symfonyconfiguration

我想从docker-compose文件传递configuration参数到我的Symfony应用程序,我试过这个: app: image: <NGINX + PHP-FPM IMAGE> environment: DATABASE_HOST: db 我的parameters.yml文件: database_host: "%env(DATABASE_HOST)%" 我得到错误500“找不到环境variables:DATABASE_HOST” 我也尝试了docker-compose中的SYMFONY__DATABASE_HOST,但也无法正常工作。 它是如何工作的?

envsubst命令卡在容器中

我有一个要求,应用程序运行之前,它的一部分需要读取环境variables。 为此,我有以下的docker文件 FROM nodesource/jessie:0.12.7 # install gettext for envsubst RUN apt-get update RUN apt-get install -y gettext-base # cache package.json and node_modules to speed up builds ADD package.json package.json RUN npm install # Add source files ADD src src # Substiture value for backend endpoint env var RUN envsubst < src/js/envapp.js > src/js/app.js ADD node_modules […]

docker-compose的环境variables在Jenkins里面

我有以下设置: jenkins环境运行docker-compose,但我需要将环境variables传递给yml文件: 示例docker-compose.yml version: '2' services: logon_server: build: . image: my_server:0.0.1 ports: – "9200:9200" command: ${DOCKER_CMD_EXEC} networks: – my_ntwrk networks: my_ntwrk: 当我从我的Mac上的shell提示符下运行以下脚本时,我可以传递不同的命令来执行,一切正常。 exec-tests.sh #!/bin/bash chmod 755 docker/exec-*.sh # Setup env variables export DOCKER_CMD_EXEC=/ci_e2e.sh # Optional: record current versions docker -v && docker-compose -v echo `whoami` echo `sudo -E -u admin printenv` # Build, deploy and […]

Docker环境variables安全性

我有一个docker应用程序,我需要传递一个安全的信息,因为它使用密码来encryption/解密存储的数据。 我想弄清楚使用一个环境variables传递这个信息有多安全。 我知道,如果我使用 docker run -e passphrase="secretkey123" –name containername imagename 那么值可以通过以下方式find: docker inspect containername 因此它必须存储在磁盘上的某个地方(在/ var / lib / docker中我假设)。 有没有更安全的方式来传递一个环境variables到docker? 我应该使用链接到主机文件系统的卷中的临时文件吗? 有没有更好的办法?

在docker-compose.yml的入口点env文件中的环境variables

我想在入口点使用docker-compose中的env-filevariables: # environment.env HOST=example.com # docker-compose.yml some_service: … env_file: ['environment.env'] entrypoint: ['myexecutable', '–host', '$HOST'] 有没有办法做到这一点? 我发现只有一个解决scheme: # docker-compose.yml some_service: … env_file: ['environment.env'] entrypoint: sh -c 'myexecutable –host $$HOST' 但它看起来违反了docker概念“每个容器一个进程”(因为会有2个进程: sh和myexecutable )。 而容器不能正常停止,我不得不用docker kill或docker-compose kill杀死它。

ARG或ENV,在这种情况下使用哪一个?

这可能是一个微不足道的问题,但是为ARG和ENV阅读文档并没有把事情弄清楚。 我正在构build一个PHP-FPM容器,我想给用户启用/禁用一些扩展function。 如果可以在Dockerfile中添加条件并在构build命令上传递标志,可能会很好,但是AFAIK不受支持。 就我而言,我个人的方法是在容器启动时运行一个小脚本,如下所示: #!/bin/sh set -e RESTART="false" # This script will be placed in /config/init/ and run when container starts. if [ "$INSTALL_XDEBUG" == "true" ]; then printf "\nInstalling Xdebug …\n" yum install -y php71-php-pecl-xdebug RESTART="true" fi … if [ "$RESTART" == "true" ]; then printf "\nRestarting php-fpm …\n" supervisorctl restart php-fpm fi exec […]

AngularJS的可重用Docker镜像

我们有一个AngularJS应用程序。 我们为它写了一个dockerfile,所以它可以在每个系统上重用。 dockerfile不是最好的做法,它可能是一些奇怪的构build(构build和托pipe在同一个文件中),但它只是创build在每个开发人员的每台PC上本地运行我们的angularjs应用程序。 Dockerfile: FROM nginx:1.10 … Steps to install nodejs-legacy + npm RUN npm install -g gulp RUN npm install RUN gulp build .. steps to move dist folder 我们用docker build -t myapp:latest .构build我们的镜像docker build -t myapp:latest . 每个开发人员都可以运行我们的应用程序与docker run -d -p 80:80 myapp:latest 但现在我们正在开发其他后端。 所以我们在DEV中有一个后端,在UAT中有一个后端,所以我们需要在/config/xx.json使用不同的URL { … "service_base": "https://backend.test.xxx/", … } 我们不希望每次更改该URL,重build图像并启动它。 我们也不想声明一些可以在那里使用的URL(dev,uat,prod,..)。 […]

将Heroku环境variables传递给Docker实例

我在Heroku上构build了一个必须在Docker容器中运行的RoR应用程序。 为此,我使用官方的Dockerfile 。 由于Heroku非常常见,我需要一些附件来使这个应用程序完全可用。 在生产中,variablesDATABASE_URL在我的应用程序中可用。 但是,如果我尝试一些使用环境variables的其他附件(在我的情况下是Mailtrap ),则variables在运行时不会被复制到实例中。 所以我的问题很简单: 在Heroku上执行时,如何让docker实例知道环境variables? 正如你可能会问,我已经知道,我们可以在docker-compose.yml指定一个环境指令。 我想避免这一点,以便能够通过项目库共享这个文件。

我们可以通过cmd行传递ENVvariables,同时通过dockerfile构build一个docker镜像吗?

我正在处理一个任务,涉及使用Dockerfile构build以centOs为基础的docker映像 。 dockerfile中的一个步骤需要设置http_proxy和https_proxy ENVvariables,以便在代理之后工作。 由于这个Dockerfile将被具有不同代理的多个团队使用,我想避免为每个团队编辑Dockerfile。 相反,我正在寻找一个解决scheme,允许我在构build时传递ENVvariables,例如, sudo docker build -e http_proxy = somevalue。 我不确定是否已经有一个选项可以提供这个function。 我错过了什么吗?

将variables从容器开始传递到文件

我在Dockerfile中有以下几行,我希望在应用程序启动之前将configuration文件中的值设置为默认值,并在启动容器时使用-e选项提供可选的设置。 我正在尝试使用Docker的ENV突击队 ENV CONFIG_VALUE default_value RUN sed -i 's/CONFIG_VALUE/'"$CONFIG_VALUE"'/g' CONFIG_FILE CMD command_to_start_app 我在CONFIG_FILE文件中显式地使用了stringCONFIG_VALUE,并且Dockerfile的默认值被正确replace。 但是,当我运行带有-e CONFIG_VALUE=100的容器时,不执行replace,保留在Dockerfile中设置的默认值。 当我做 docker exec -i -t container_name bash 并在容器内echo $CONFIG_VALUE环境variables确实包含所需的值100。