一段时间以来,我们一直在使用 docker 容器进行开发和部署,它就像一个魅力。到目前为止,这两种配置都是相同的,并且使用 fig 开发人员的生活也更加轻松。
随着我们在节点开发循环中越来越多地使用它,现在我们面临着在开发时需要一些额外的工具(检查器、配置文件等),这些东西显然在生产容器中不需要。node-inspector 的另一个亮点是:它需要公开一个端口以连接到浏览器,以便查看工具本身。
这是我们的 fig.yml 文件:
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”是我们的应用容器,可以多次启动,将其配置更改为:
indexer:
ports:
- "8080:8080"
build: .
volumes:
- .:/src
links:
- db
- amqp
- search
隐藏了一个小问题:当我们启动其中许多时,映射端口显然成为一个问题,实际上没有检查员可用。
我的第一个 getto 解决方案只是创建一个新的“indexer-dev”容器以启动仅用于调试目的,但它不足,因为我们fig up
在 shell 上运行一个方便的只是为了启动所有内容,然后fig run indexer dev bash
在另一个中运行另一个用于我们的调试目的。所以我现在正在做的只是fig up
手动启动带有需要转发端口的容器: docker run -i -t -p 8080:8080 indexer:latest
以更自动的方式拥有它的最佳方式是什么?例如开发人员可以通过无花果继续启动容器并选择哪个实例可能有或可能没有导出端口?
谢谢你的任何建议。
干杯卢西奥