如何在docker-compose.yml中设置/获取项目名称
我正在尝试设置docker-compose项目名称,或者可以在我的configuration文件中引用它。 有这些可能吗?
我问的原因是,我正在按照这个教程,所以我结束了一个docker-container.yml
文件读取
web: build: . command: bundle exec rails s -p 3000 -b 0.0.0.0 ports: - "3000:3000" links: - db volumes: - ".:/myapp" volumes_from: - bundle db: image: mongo ports: - "27017" bundle: image: myapp_web # <--- this is actually {$project_name}_web being hard-coded command: echo Hello volumes: - /bundle
由于image: myapp_web
configuration,这只会工程如果项目名称本身是myapp
。 如果我正在处理一个名为myapp
的目录,或者使用了docker-compose -p myapp
这将是真实的。
但是一旦有人改变目录名称,这将会崩溃。 我想告诉COMPOSE_PROJECT_NAME
-compose使用自定义的COMPOSE_PROJECT_NAME
variables,而不必传递-p fancyname
选项。
我可以想象的另一种方式是在yml文件中传递某种image: {$COMPOSE_PROJECT_NAME
} _web,但是我不确定这可以实现。
任何想法 ?
这只是基于我的初步评论的答案。
当从同一图像构build多个服务时,通常再安装一次就可以了。 在这种情况下, bundle
可以build立.
。 由于您只是再次构buildweb
,它将被caching(因此快速构build),并具有相同的图像ID。
在Github上有一个Docker 相关的问题 ,你可能想看看。