我们现在使用docker容器进行开发和deplyoment一段时间,它就像一个魅力.直到现在两个配置都是相同的,并且使用顶部无花果,开发人员的生活也变得更加容易.
当我们在节点开发中越来越多地使用它时,我们现在需要在开发(检查器,配置文件等)时使用一些额外的工具,这些工具在生产容器中显然是不需要的.再次捕获node-inspector:它需要公开一个端口以连接到浏览器,以便自己查看该工具.
这里是brieffly我们的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"是我们的app容器,可以多次推出,将其配置更改为:
indexer: ports: - "8080:8080" build: . volumes: - .:/src links: - db - amqp - search
掩盖了一个小问题:当我们发射其中许多时,映射的端口显然成为问题,并且实际上没有检查员可用.
我的第一个getto解决方案就是创建一个新的"indexer-dev"容器来启动它只是为了调试目的,但它不足以因为我们fig up
在shell上运行方便只是为了把所有东西都搞定,然后另一个fig run indexer dev bash
在另一个用于我们的调试目的.所以我现在正在做的只是fig up
随后手动启动带有neede转发端口的容器:docker run -i -t -p 8080:8080 indexer:latest
以更自动的方式进行此操作的最佳方式是什么?比如开发人员可以通过无花果继续发布容器并选择可能或可能没有导出端口的实例?
谢谢你的任何建议.
欢呼卢西奥