我的docke-compose.yml如下所示
services:
goporxy:
image: goproxy/goproxy
container_name: goporxy
hostname: goporxy
restart: always
volumes:
- ./goporxy:/go
ports:
- "80:8081"
goserver:
build:
context: ./
dockerfile: ./Dockerfile
container_name: goserver
hostname: goserver
restart: always
depends_on:
- goporxy如果构建它,则会出现错误
go: github.com/Joker/hpp@v1.0.0: Get "http://host.docker.internal:80/github.com/%21joker/hpp/@v/v1.0.0.mod": dial tcp 192.168.65.2:80: connect: connection refused
但是如果我在docker-compose up之前运行docker run -d -p80:8081 goproxy/goproxy并删除docker-compose.yml中的goporxy
goporxy更正函数并开始下载依赖项
(在goserver文件中,我设置了像RUN go env -w GOPROXY=http://host.docker.internal:80,direct这样的goproxy )
我想用docker-compse一次做两件事,怎么办?
发布于 2020-12-08 15:32:02
docker-compose syas : depends_on在启动web - only之前不会等待db和redis准备就绪,直到它们已经启动。如果您需要等待服务准备就绪,请参阅控制启动顺序以了解有关此问题的更多信息以及解决此问题的策略。
这是detail:https://docs.docker.com/compose/startup-order/
实际上,你可以在容器启动命令execution.The shell之前运行service.There,或者访问你的网站来判断容器是否准备好了,然后启动真正的api是一个现成的解决方案。SH脚本称为"wait for“。只需下载shell并将其添加到dockerfile中
RUN apt-get -q update && apt-get -qy install netcat然后将其添加到docker-compose.yml中
command: sh -c './wait-for.sh "the server depended:port" -- "the code run the server"'https://stackoverflow.com/questions/65177362
复制相似问题