[英]Docker compose can't access ports of other containers
我有 2 個使用 docker 組合運行的容器。 其中一個容器正在執行 shell 腳本,該腳本應檢查另一個容器是否已經啟動並在端口 9990 上運行。
即使容器正在啟動,shell 腳本也沒有回應。
keycloak:
image: jboss/keycloak:latest
volumes:
- ./imports/cache_reload/disable-theme-cache.cli:/opt/jboss/startup-scripts/disable-theme-cache.cli
- ./imports/themes/custom/:/opt/jboss/keycloak/themes/custom-theme/
- ./imports/realm/realm-export.json:/opt/jboss/realms/custom-import.json
environment:
DB_VENDOR: MYSQL
DB_ADDR: mysql
DB_DATABASE: keycloak
DB_USER: keycloak
DB_PASSWORD: password
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: Pa55w0rd
ports:
- 8080:8080
depends_on:
- mysql
keycloak_installer:
image: solr:6.6-alpine
volumes:
- ./imports/scripts/import-realm.sh:/docker-entrypoint-initdb.d/init.sh
depends_on:
- keycloak
shell 腳本如下:
echo "MOIN LEUDE TRYMACS HIER!"
while ! nc -z localhost 9990; do
sleep 1
echo "Waiting for keycloak server startup 9990..."
echo "$(nc -z localhost 9990)"
done
打印了第一個回聲,但隨后沒有打印任何其他內容。
容器 keycloak 在端口 9990 上運行。
請幫忙,謝謝
您必須在 docker compose 中了解有關網絡的更多詳細信息。
要解決您的問題,您需要:
ports:
- 8080:8080
networks:
- keycloak_network
在第二個容器(名為keycloak_installer )上(您必須在第一個容器中公開要請求的端口):
depends_on:
- keycloak
networks:
- keycloak_network
nc -z keycloak_installer 9990
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.