我正在做一个有2个docker撰写文件的项目。一边是我的堆栈和rails服务器。
version: '3'
services:
web:
entrypoint: ["./docker-entrypoint.sh"]
build:
context: .
dockerfile: <MY FILE>
command: bundle exec rails s -b 'ssl://0.0.0.0?key=/app/ssl/server.key&cert=/app/ssl/server.crt'
volumes:
- .:/app
ports:
- "443:3000"
stdin_open: true
tty: true
networks:
- ekoma
networks:
ekoma:
driver: bridge在另一边,我有一个wordpress实例
version: '3'
services:
wordpress:
image: wordpress:latest
ports:
- 8888:80
networks:
- app_ekoma
networks:
app_ekoma:
external:
name: app_ekoma我正在简化组成文件,但如果需要,我可以提供更多。出于某些原因,在我的wordpress实例中,我可以使用"web“主机,甚至可以启动一个curl调用:curl web:3000
但是请求挂起并且没有完成。
这也可能是rails服务器的问题,但我将其用作API,并且从外部网络连接到localhost:443没有任何问题。
感谢您的关注,任何想法都将不胜感激:)
发布于 2021-06-07 13:57:08
您可以创建一个User-defined Bridge network,然后将两个容器连接到您的网桥网络。
要创建桥,请执行以下操作:
>> docker network create --driver bridge my-user-defined-bridge-net然后做一个健全性检查,看看它连接了什么(现在不应该连接任何东西):
>> docker network inspect my-user-defined-bridge-net在输出中向下滚动一点,直到您看到containers prop,其中列出了连接的容器。现在,它应该是空的:
"Containers": {}接下来,在每个docker-compose文件中,将容器连接到我们刚刚创建的桥。
您的第一个文件将是:
version: '3'
services:
web:
container_name: container_one
entrypoint: ["./docker-entrypoint.sh"]
build:
context: .
dockerfile: <MY FILE>
command: bundle exec rails s -b 'ssl://0.0.0.0?key=/app/ssl/server.key&cert=/app/ssl/server.crt'
volumes:
- .:/app
ports:
- "443:3000"
stdin_open: true
tty: true
networks:
- ekoma
networks:
ekoma:
external:
name: my-user-defined-bridge-net你的第二个文件是:
version: '3'
services:
wordpress:
container_name: container_two
image: wordpress:latest
ports:
- 8888:80
networks:
- app_ekoma
networks:
app_ekoma:
external:
name: my-user-defined-bridge-net使用这些新的docker-compose文件重新启动两个容器,并检查桥的状态:
>> docker network inspect my-user-defined-bridge-net"Containers"属性现在应该显示
"Containers": {
"asdfasdfasdfasdfasdfasdfasdfasdfasdf1324654a1sd65fa56sdf": {
"Name": "container_one",
"EndpointID": "51asdf5sd651as65d1f1a65sdf1a63sd5f1asd65fa56sdf56asd6f5a65s1df",
"MacAddress": "02:42:ac:1d:00:02",
"IPv4Address": "172.29.0.2/16",
"IPv6Address": ""
},
"a6s51dfa65sd1fas6d5f1a6s5df0asd65f0a6sd5f41asd658f4sdf": {
"Name": "container_two",
"EndpointID": "6a5sdfa65sd1fa6s5df1as6d51fas6d51fa6s5d1f6a5sd16sd6a1s",
"MacAddress": "02:42:ac:1d:00:03",
"IPv4Address": "172.29.0.3/16",
"IPv6Address": ""
}
},https://stackoverflow.com/questions/54406756
复制相似问题