Tag: 环境variables

在运行docker contianer中设置环境variables

我需要在运行的Docker容器中设置环境variables。 我已经意识到创build容器时设置环境variables的方式。 到目前为止,我发现没有可用的直接方式来做这个与docker和docker计划添加一些新的1.13版本。 但是,我发现有些人能够pipe理它,现在不适合我。 我尝试了下面的方法,但没有为我工作 – docker exec -it -u=root test /bin/bash -c "export port=8090" 使用脚本将echo“export port = 8090”复制到/etc/bash.bashrc,然后将其源代码 docker exec -it test /bin/bash -c "source /etc/bash.bashrc" configuration一个脚本中的所有东西,并从主机运行它也没有工作。 当从主机运行脚本时,除“export port = 8090”或“source /etc/bash.bashrc”或“source / root / .bashrc”之外,其他所有命令都成功执行。 任何人都可以解释为什么从主机源文件不能在docker容器中工作,甚至当我设置用户(“ – U =根”)? 任何人都可以帮我解决这个问题吗? 当我从容器内源文件,它完美的作品。 但在我的情况下,我必须从主机做到这一点 注意:我使用docker 1.12,并在ubuntu:16.04和ubuntu:14.04上面试过

在DockerFile中使用Dokku环境variables

我打算在DockerFile中使用Dokku环境variables,但没有成功。 Dokku Env设有: dokku config:set www NR_APP=AppName 在DockerFile中,我想把这个NR_APP放到一个文件中: RUN sh -c 'echo "newrelic.appname=\"$NR_APP\"" >> /etc/php5/apache2/conf.d/newrelic.ini' 但是它不起作用,文件中的结果是: newrelic.appname= 如果我尝试在构build期间仅回显ENV: RUN echo "$NR_APP" 它返回空白。 如果我尝试在DockerFile 里面设置NR_APP: ENV NR_APP AppName 它的工作原理,但我不想在DockerFile中定义它,因为它是一个基于开发/生产部署而改变的值,我也用license_key来做。 谢谢!

在AWS Elastic Beanstalk上部署Dockerized Symfony2应用程序

什么是部署多容器docker symfony应用程序的正确方法? 我有以下的知识基础和情况: 我的docker-compose环境在本地工作,由nginx,php5-fpm,memcached,mysql和mailcatcher组成 我正在使用多容器EB应用程序,目标是使用单独的configuration运行单独的“testing”和“生产”环境 我已经知道我不能简单地在EB内build立整个事物,并且必须已经build立了图像,因此我将它们全部放在这里: https : //hub.docker.com/u/sunbake/dashboard/ 我知道我可以为每个EB环境设置自定义的环境variables 我知道SYMFONY__WHATEVER_NAME可以很容易地用作应用程序参数 现在什么让我感到困扰,并且正在问如何以更好的方式做到这一点? 插入敏感值(如数据库密码)似乎有点可疑 – 如果没有别的,HTMLinput字段值可以存储在浏览器caching/历史logging中 为整个操作系统设置敏感数据的环境variables大致相同 – 假设有人获得任何types的系统访问权限,然后获取envvariables。 即使这是唯一可能的事情,获取明文密码是不好的 为了将环境variables通过nginx获取到通过php-fpm运行的PHP skript,nginxconfiguration文件必须通过它们。 换句话说,如果我想使用这种方法,我必须在我的nginx.conf中有硬编码的参数(是的,没有值,但读了)。 第八个子弹是我的整个问题: 鉴于本文中的第三个项目符号,这意味着我必须重新构build整个图像,每次我想添加一个参数,这可以完成,但似乎是一个开销,也意味着我不能使用图像的多个应用程序,可能有不同的参数 鉴于形象和来源必须是公开的(我不打算在这个用例中支付docker中心),它也公开了应用程序如何工作的部分。 例如,如果一个潜在的攻击者能够以某种方式执行代码来列出我的envvariables,他就知道哪个envvariables要准确地查找。 我希望使用整个bitbucket-docker-dockerhub-eb在多个环境中自动部署: 在本地主机上开发一组特定的docker镜像(mailcatcher,本地mysql实例,启用了xdebug) 在AWS EB上testing环境,在RDS中没​​有邮件收集器和数据库 生产环境相同的testing之一,但没有xdebug和一些小的优化调整 当然必须有一个方法如何做到这一点。 我相信我已经走了很远,但是我有些不妥。 任何提示将不胜感激。

Bashvariables在第三个远程服务器中

我需要input一个variables到第三个linux系统,这里是scheme: 从我的笔记本电脑>docker服务器>一个容器, #!/bin/bash domain=$1 ssh -i $SSH_KEY docker@10.10.10.10 "docker run –rm=true 931967fb3e32 /bin/bash -c curl -Is $domain 当然,variables只能到达docker服务器,而不能到达容器。

多个docker撰写文件,并指定env_file

我正在使用docker创build基本configuration并对其进行扩展的项目。 我的基地docker-compose.yml文件有links ,所以我不能在扩展撰写文件中使用extends参数。 相反,我将多个docker-compose文件指定给docker-compose工具。 这是工作得很好,除了看起来.env文件的path总是相对于指定的第一个docker-compose.yml文件,这打破了我的预期function。 例: docker-compose.yml (生活在一个共同的位置,让我们说~/base-app ) web: build: . volumes: – .:/usr/src/app ports: – "80:3000" links: – redis redis: image: redis:latest ports: – "6379:6379" 现在在一个孩子的应用程序,我想指定一个command和env_file : 泊坞窗,compose.override.yml web: environment: NODE_ENV: development env_file: .env command: node server.js 当我运行这个设置时,我会使用下面的命令: docker-compose -f ~/base-app/docker-compose.yml -f docker-compose.override.yml up 这个效果很好,只要我不指定一个env_file 。 但是在指定了env_file ,我会得到如下错误: ERROR: Couldn't find env file: […]

ansible docker env var在容器中不可用

所以我开始像这样的一个docker集装箱 name: start the new shiny container docker: name: web image: pneuma/web state: started detach: True ports: – "80:80" volumes: – /data/db:/var/lib/postgresql – /data/log:/var/log/postgresql env: DEPLOYMENT_ENVIRONMENT: "{{ deployment_env }}" 但var DEPLOYMENT_ENVIRONMENT在容器内不可用,当我尝试echo $DEPLOYMENT_ENVIRONMENT或使用其他地方。 有什么遗漏?

Kubernetes:pipe理环境configuration

用于pipe理在pod中运行的环境configuration容器的reccomended方法是通过使用configmap 。 看到这里的文档 。 虽然我们的容器需要大量的环境variables,但是这是非常好的,这只会在未来扩展。 使用规定的configuration图方法,这变得unweildy和难以pipe理。 例如一个简单的deplyment文件变得很大: apiVersion: v1 kind: Service metadata: name: my-app-api labels: name: my-app-api environment: staging spec: type: LoadBalancer ports: – port: 80 targetPort: 80 protocol: TCP name: http selector: name: my-app-api environment: staging — apiVersion: extensions/v1beta1 kind: Deployment metadata: name: my-app-api spec: replicas: 2 revisionHistoryLimit: 10 template: metadata: labels: name: my-app-api […]

Dockerfile ENV反插插值

如何在Dockerfile的ENV命令中使用bash的反插插值? Dockerfile: FROM节点 RUN npm i -g纱线 ENV PATH =“$ PATH:`yarn global bin`” 问题是,在bash中,`yarn global bin`被内插到一个实际的string(即/ usr / local / bin),但是在Dockerfile中,反引号是一个转义字符。

如何在MAC上设置DOCKER_HOST envvariables

我试图在Mac上运行需要docker守护进程运行的程序。 为此,我设置了程序可以使用的DOCKER_HOST envvariables,方法如下 setenv DOCKER_HOST "tcp://<ip-of-docker-daemon-host>:2375" 但程序将其检测为http地址。 我也尝试了以下 setenv DOCKER_HOST "http://<ip-of-docker-daemon-host>:2375" setenv DOCKER_HOST tcp://<ip-of-docker-daemon-host>:2375 但仍然有同样的错误。 我也重新启动了docker守护进程,确保它在2375端口上可用,如下所示 sudo docker -H 0.0.0.0:2375 -d & 我在Mac OX Capitan 10.11.5上

将docker-comp的envvariables注入到Angular4应用程序中

我构build了一个简单的Angular4应用程序,它从REST-API获取数据。 我使用docker-compose部署应用程序,但在我需要在服务模块中手动将URL /主机名设置为API之前。 在开发期间,我简单地使用“本地主机”,它做的工作。 在API中,我可以通过docker-compose(部分环境 )注入正确的主机名,因为它在服务器上运行,但是对于angular度来说这是不可能的。 是否有任何最佳做法/指导将主机名/ URL从docker-compose注入到angular-cli应用程序中?