gpt4 book ai didi

docker-compose - 如何在 docker-compose 文件中配置 Caddy 2 以在没有绑定(bind)安装的 Caddyfile 的情况下进行反向代理?

转载 作者:行者123 更新时间:2023-12-03 23:07:09 28 4
gpt4 key购买 nike

我有一个包含两个服务的 docker-compose 文件:

  • 我的 webapp,它暴露了端口 3000
  • caddy,它作为我的网络应用程序的反向代理并提供 HTTPS

  • 如果我使用绑定(bind)安装的 Caddyfile,它工作正常:
    caddy:
    image: caddy:2.0.0-alpine
    ports:
    - 80:80
    - 443:443
    volumes:
    - caddy:/data
    - .Caddyfile:/etc/caddy/Caddyfile

    Caddy 文件非常简单:
    my-domain.com {
    reverse_proxy my-app:3000
    }


    但我想在不上传 Caddyfile 的情况下将其部署在服务器上。我想配置我的 docker-compose.yml 是这样的:
    version: "3"

    services:
    my-app:
    image: my-app
    expose:
    - 3000

    caddy:
    image: caddy:2
    ports:
    - 80:80
    - 443:443
    environment:
    - reverse_proxy_from=my-app:3000
    - reverse_proxy_to=my-domain.com
    volumes:
    - caddy:/data


    volumes:
    caddy:


    也许也可以通过 caddy API 来实现。当我尝试在裸操作系统上配置反向代理时,它可以工作。但是,当我尝试使用 docker ( docker-compose exec caddy caddy reverse-proxy --from my-site.net --to my-app:3000 ) 执行此操作时,我收到了一些不清楚的错误消息:
    root@test:/xxx# docker-compose exec caddy caddy reverse-proxy --from my-site.net --to app:3000
    2020/05/15 11:49:57.787 WARN admin admin endpoint disabled
    2020/05/15 11:49:57.787 INFO http server is listening only on the HTTPS port but has no TLS connection policies; adding one to enable TLS {"server_name": "proxy", "https_port": 443}
    2020/05/15 11:49:57.787 INFO http enabling automatic HTTP->HTTPS redirects {"server_name": "proxy"}
    2020/05/15 11:49:57 [INFO][cache:0xc000726820] Started certificate maintenance routine
    2020/05/15 11:49:57.788 INFO tls cleaned up storage units
    reverse-proxy: loading new config: http app module: start: tcp: listening on :80: listen tcp :80: bind: address already in use

    最佳答案

    这可能很有趣:

    https://hub.docker.com/r/lucaslorentz/caddy-docker-proxy

    根据它引用的 github 存储库中的描述,它的工作原理是扫描 Docker 元数据以查找指示服务或容器应在 caddy 上公开的标签。

    然后它会生成一个内存中的 Caddyfile,其中包含指向每个 Docker 服务 DNS 名称或容器 IP 的网站条目和代理指令。

    每次 docker 对象更改时,它都会更新 Caddyfile 并触发 caddy 零停机时间重新加载。

    关于docker-compose - 如何在 docker-compose 文件中配置 Caddy 2 以在没有绑定(bind)安装的 Caddyfile 的情况下进行反向代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61818066/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com