version: '2'
services:
service1:
build:
image: company/service1:v1
context: .
- dockerfile: Dockerfile-service1
service2:
build: .
image: company/service2:v1
links:
- service1
我有两个Dockerfile,一个叫做Dockerfile,另一个叫Dockerfile-service1,它们都与/opt
在同一目录(docker-compose.yml
)中。
我需要构建两个图像并启动容器并将其链接。为了使我现在能够执行此操作,我将Dockerfile-service1
移至另一个目录并将其重命名为Dockerfile,然后运行如下构建命令:docker build -t company/service1:v1
。
然后,我再次进入/ opt目录并构建service2映像并启动两个容器:docker build . --no-cache -t company/service2:v1 && docker-compose up -d
必须有一种更好的方法,以便我可以运行一个同时执行两个命令的命令,我只是不知道该怎么做。
如何解决此问题?
答案 0 :(得分:1)
不太确定您要做什么,但是不需要重命名docker文件。在docker-compose中,您可以像这样:
build:
context: ./path_to_dockerfile
dockerfile: Dockerfile-service1
然后我使用以下命令运行docker-compose.yml中的所有内容:
docker-compose build
docker-compose up -d
答案 1 :(得分:1)
这可以做到:
version: '2'
services:
service1:
container_name: service1
build:
context: .
dockerfile: ./Dockerfile-service1
service2:
container_name: service2
build:
context: .
dockerfile: ./Dockerfile
links:
- service1
或者如果您已经构建了service-2
图像,则为:
version: '2'
services:
service1:
container_name: service1
build:
context: .
dockerfile: ./Dockerfile-service1
service2:
container_name: service2
image: company/service2:v1
links:
- service1
docker-compose up -d