首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在docker-compose版本中访问http://host.docker.internal:80

如何在docker-compose版本中访问http://host.docker.internal:80
EN

Stack Overflow用户
提问于 2020-12-07 15:07:20
回答 1查看 673关注 0票数 1

我的docke-compose.yml如下所示

代码语言:javascript
复制
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一次做两件事,怎么办?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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中

代码语言:javascript
复制
RUN apt-get -q update && apt-get -qy install netcat

然后将其添加到docker-compose.yml中

代码语言:javascript
复制
command: sh -c './wait-for.sh "the server depended:port" -- "the code run the server"'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65177362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档