Tag: 环境variables

Dockerregistry:2.0覆盖configuration选项

有没有人尝试使用环境variables来覆盖registry中的configuration选项,例如,如果你不得不使用S3存储桶作为存储例如。 我读了文档,它说( https://docs.docker.com/registry/configuration/ ): Overriding configuration options Environment variables may be used to override configuration parameters other than version. To override a configuration option, create an environment variable named REGISTRY_variable_ where variable is the name of the configuration option. eg REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/tmp/registry/test will set the storage root directory to /tmp/registry/test 所以我尝试了这个命令,但是当我启动registry时,它似乎没有任何效果: docker run -it -v /var/log/docker-registry:/var/log […]

docker运行和variablesreplace

我有一个名为image_name的脚本中的variables image_name="my-app" 我试图把这个variables传递给一个docker容器,如下所示: docker build -t $image_name . docker run –rm –name $image_name -e "app_dir=${image_name}" $image_name 但是这个variables没有设置,在docker build的上下文中是空白的 这是下面的Dockerfile的一个片段: …. RUN echo dir is $app_dir …. 这是下面的构build输出的一个片段: …. Step 2 : RUN echo dir is $app_dir —> Running in db93a939d701 dir is —> c9f5e2a657d5 Removing intermediate container db93a939d701 …. 任何人都知道如何做variables替代?

在主pipe中使用docker环境-evariables

我一直试图通过-e选项将一个环境variables传递给Docker容器。 该variables旨在用于容器内的主pipe脚本。 不幸的是,该variables没有得到解决(即他们留在例如$INSTANCENAME )。 我尝试了${var}和"${var}" ,但是这也没有帮助。 有什么我可以做或者这是不可能的? docker运行命令: sudo docker run -d -e "INSTANCENAME=instance-1" -e "FOO=2" -v /var/app/tmp:/var/app/tmp -t myrepos/app:tag 和主pipe文件: [program:app] command=python test.py –param1=$FOO stderr_logfile=/var/app/log/$INSTANCENAME.log directory=/var/app autostart=true

docker-compose – 如何转义环境variables

使用docker-compose v2环境variables可以简单地设置: enviroment: – MONGO_PATH=mongodb://db-mongo:27017 完整docker-compose.yml文件是: version: '2' services: web: build: . environment: – MONGO_PATH=mongodb://db-mongo:27017 ports: – "3000:3000" volumes: – .:/app – /app/node_modules depends_on: – db-mongo – db-redis db-mongo: image: mongo restart: unless-stopped command: –smallfiles ports: – "27017:27017" volumes: – ./data:/data/db […] 但是,我怎么能逃避不是一个普通的string的环境variables? {"database": {"data": {"host": "mongo"}}} 我试过了: NODE_CONFIG=\{"database": \{"data"\: \{"host": "mongo"\}, "session": \{"host": "redis" […]

Docker撰写开发和生产环境最佳工作stream程

我已经构build了一个简单的Docker Compose项目作为开发环境。 我有PHP-FPM,Nginx,MongoDB和Code容器。 现在我想要自动化这个过程并部署到生产环境。 docker-compose.yml可以扩展,并可以定义多个环境。 有关更多信息,请参阅https://docs.docker.com/compose/extends/ 。 但是,我的容器有Dockerfiles。 而对于开发环境来说,需要比生产更多的软件包。 主要问题是我应该使用单独的dockerfiles dev和prod ,并在docker-compose.yml和production.ymlpipe理它们? 单独的dockerfiles是简单的方法,但有代码重复。 另一种解决scheme是使用环境variables,并以某种方式从bash脚本(也许作为入口?)处理它们。 我正在寻找其他的想法。

Dockerfile内置的环境variables文档

我遇到了一些有用的信息,这些信息提示我有一个可以在Dockerfile中使用的内置环境variables$HOSTNAME 。 在相当数量的search中,我无法find这样的内置variables的全面列表。 Dockerfile参考解释了如何使用ENV命令来修改环境variables,但我现在不需要这个。 我只是想知道什么是可用的默认情况下。 有没有这方面的官方文件? 我认为应该有,并做一些searchHOSTNAME会指向我,但没有骰子。

在Docker中访问Elastic Beanstalk环境属性

所以我一直在寻找一个如何从AWS EB Web界面为我的Docker容器指定环境variables的例子。 通常在EB中,您可以添加在运行时可用的环境属性。 在我切换到Docker之前,我正在使用这些用于之前的部署,但似乎Docker在处理环境属性方面有一些不同的规则,是正确的吗? 根据这篇文章[1],只有AWS证书和PARAM1-PARAM5将出现在环境variables中,但是不存在自定义属性。 这就是我所听到的,特别是考虑到支持自定义环境属性的容器说明了它,就像Python在这里显示的那样[2]。 有没有人有这个软件组合的经验? 我需要指定的是一个单独的环境variables,告诉我应用程序是处于“暂存”模式还是“生产”模式,然后我的环境特定的configuration由应用程序自己设置。 [1] http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html#command-options-docker [2] http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html#command-options-python

Docker将一个variables传递给运行git clone的shell脚本

我正在创build一个Dockerfile,作为这个文件的一部分,我想让最终用户可以select通过他们的git仓库。 我看了这个SOpost ,还有一些其他的网站,但是我坚持使用git clone语法。 git clone命令返回一个错误,因为作为其一部分的variables在docker build阶段不包含值。 我有这个名为gitclone.sh的bash脚本 #!/bin/bash git clone $1 /app 并在我的Dockerfile我有这一行: RUN ./gitclone.sh $LOCATION shell脚本具有正确的权限来运行,并且在从容器内运行它时起作用,因为我将一个实际的存储库传递给它。 在Docker构build阶段,我得到以下错误: 致命的:仓库'/应用程序'不存在 该目录在那里,但$1是空的命令不起作用。 问题我如何使Dockerfile工作? 我想要的所需输出: docker run -e LOCATION=https://github.com/something.git -d jwknz/pg02 更新更改我的Dockerfile以包含CMD ["../gitclone.sh","$LOCATION"]而不是RUN ./gitclone.sh $LOCATION不解决它。 Dockerfile将生成,但容器在运行docker docker run命令后停止。

Docker – 在java应用程序中获取绑定的端口

我正在创build一个像我的形象的实例 docker run -P webmodule-xy webmodule的Dockerfile暴露一个端口(例如8080)。 我现在的目标是获得可以通过Java从外部访问的映射/分配的端口号。 有没有一个环境variables或类似的东西? 用例:webmodule-xy应该在另一个Web应用程序上注册自己,并提供其IP +端口,以便其他应用程序稍后可以联系webmodule-xy。 IP没问题,但是端口是。 我已经在GitHub上发现了这个开放的问题 ,但我不能相信没有简单的解决scheme。 就像在那里陈述的那样,REST不是一个select: 允许容器访问REST API是有问题的。 首先,REST API是可读/写的,如果你只需要读取你的portmappings,那么授权一个容器只是为了找出几个端口是一个危险的权限级别。

Dockerfile – 使用dynamic值定义ENVvariables

我想用dynamic值更新PATH环境variables。 这是我到目前为止在我的Dockerfile中试过的: … ENV PATH '$(dirname $(find /opt -name "ruby" | grep -i bin)):$PATH' … 但是导出显示该命令没有被解释: root@97287b22c251:/# export declare -x PATH="\$(dirname \$(find /opt -name \"ruby\" | grep -i bin)):\$PATH" 我不想硬编码的价值。 是否有可能实现它? 谢谢