首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >针对开发需求的条件fig配置

针对开发需求的条件fig配置
EN

Stack Overflow用户
提问于 2014-09-09 16:09:06
回答 1查看 856关注 0票数 4

从一段时间以来,我们一直在使用docker容器进行开发和耗尽,它的效果很不错。到目前为止,两个配置都是相同的,有了fig,开发人员的生活也变得更容易了。

随着我们在我们的节点开发周期中越来越多地使用它,我们现在面临着在开发时需要一些额外的工具(检查器、配置文件等),这些东西显然不是生产容器中需要的。节点检查器的另一个问题是:它需要公开一个与浏览器连接的端口,以便查看工具本身。

下面是我们的fig.yml文件:

代码语言:javascript
复制
indexer:
  build: .
  volumes:
   - .:/src
  links:
   - db
   - amqp
   - search
amqp:
  ports:
   - "5672:5672"
   - "15672:15672"
  image: mikaelhg/docker-rabbitmq
db:
  ports:
   - "3306:3306"
  image: tutum/mysql:5.6
search:
  ports:
   - "9002:9002"
   - "9300:9300"
  image: dockerfile/elasticsearch

"Indexer“是我们的应用程序容器,它可以多次加载,将其配置更改为:

代码语言:javascript
复制
indexer:
  ports:
    - "8080:8080"
  build: .
  volumes:
   - .:/src
  links:
   - db
   - amqp
   - search

burries有一个小问题:当我们启动它们中的许多时,映射的端口显然成了一个问题,实际上没有可用的检查器。

我的第一个getto解决方案只是创建了一个新的"indexer-dev“容器来启动,只是为了调试目的,但是它做不到,因为我们在一个fig up上运行一个方便的fig run indexer dev bash只是为了打开所有东西,然后在另一个shell中运行另一个shell来进行调试。所以我现在要做的就是运行一个fig up,然后用需要转发的端口手动启动容器: docker run -i -t -p 8080:8080 indexer:latest

以一种更自动化的方式实现这一点,最好的方法是什么?例如,开发人员可以方便地在整个图中不断启动容器,并选择哪个实例可能具有或可能没有导出端口?

谢谢你的建议。

干杯卢西奥

EN

回答 1

Stack Overflow用户

发布于 2014-10-06 02:35:33

您可以在调用fig upfig run时传入环境变量

获取以下fig配置文件:

代码语言:javascript
复制
test:
  image: base
  command: env
  environment:
    - DEBUG

它定义了一个名为test的容器,该容器将输出环境变量。请注意,在environment部分中,我们定义了一个没有值的环境变量DEBUG

当使用fig upfig run运行时,它将定义DEBUG环境变量,而不定义任何值

代码语言:javascript
复制
$ fig run test
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=5412e54ea3de
TERM=xterm
DEBUG=
HOME=/root

但是您可以为DEBUG环境变量注入一个新值,如下所示:

代码语言:javascript
复制
$ DEBUG=true fig run test
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=9150d89c57a2
TERM=xterm
DEBUG=true
HOME=/root

这允许您传递秘密,或者让您的容器根据某些环境变量的不同而表现不同。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25739589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档