如何使用docker compose使用ssl发布服务?

如何使用docker compose使用ssl发布服务?,docker,docker-compose,twitter-finagle,finatra,Docker,Docker Compose,Twitter Finagle,Finatra,我使用docker容器上运行的finatra服务器提供服务。目前我正在使用letsencrypt,我创建了我的.pfx文件等。但我不知道如何将它与docker compose一起使用。我的项目中有一个keystore文件夹,其中包含我的ssl文件。 这是我的docker compose.yml version: '2' services: test: build: target/docker/stage ports: - "9999

我使用docker容器上运行的
finatra
服务器提供服务。目前我正在使用letsencrypt,我创建了我的
.pfx
文件等。但我不知道如何将它与
docker compose
一起使用。我的项目中有一个
keystore
文件夹,其中包含我的ssl文件。 这是我的
docker compose.yml

version: '2'
services:
    test:
        build: target/docker/stage
        ports:
            - "9999:9999"
            - "9990:9990"
        links:
            - mongo:mongo
        depends_on:
            - mongo

    mongo:
        image: mongo
        ports:
            - "27017:27017"
        volumes:
            - ./mydb:/data/db            

我建议使用nginx及其SSL终止功能:

nginx服务应该是您的应用程序的入口点,您可以使用提供的证书/密钥终止SSL,然后通过覆盖网络在容器应用程序之间传递未加密的流量


像这样终止SSL是一种最佳做法,如果您确实想加密集群内的网络流量,那么请使用来自入口控制器的单独证书进行加密。

实际上,我将在我的朋友服务器上运行我的服务,他已经在为许多其他服务使用nginx,但我不知道如何使用他的nginx运行我的服务,因为我使用docker compose。我有点困惑。我的朋友有一个使用nginx的服务器,我将使用docker compose在那里运行我的服务。我只是不知道我应该做什么样的配置。nginx配置需要知道您正在使用的任何域上的入站流量。配置选项在我发送的链接中可用。您使用docker compose也没关系,不过我建议您在Swarm模式下运行工作负载,以防应用程序死机并需要重新启动(docker compose不会这样做)。好的,谢谢您提供的信息,我会接受它!顺便问一下,你有任何例子如何设置我的docker compose swarm模式。基本上我只想要相同的设置。用docker Swarm init初始化Swarm。请记住,您现在已经启用了一些非常酷的新功能,例如运行无状态服务的多个实例(副本)。也可以在此处查看我的GitHub学习报告:。希望有帮助!