我正在尝试在Azure上使用Docker Composer(预览版)部署一个简单的应用程序。我有2个映像,一个用于后端API,另一个用于前端。
version: "3"
services:
backend:
image: spring-backend
ports:
- '8080:8080'
angular:
image: angular
container_name: angular
但是当我看到日志时,它绑定在错误的端口,应用程序无法正常工作。
2023-04-12T04:47:06.271Z INFO - docker run -d -p 7413:8080 --name solution_test_7edf902b -e WEBSITES_ENABLE_APP_SERVICE_STORAGE=false -e WEBSITE_SITE_NAME=test-example-solution -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=test-example-solution.azurewebsites.net -e WEBSITE_INSTANCE_ID=b08b793703ed90c29d190499db3bc194822d9b232329810c8844678e66822c18 -e WEBSITE_USE_DIAGNOSTIC_SERVER=False spring-backend
每次我重新启动服务或更改部署时,似乎都选择了一个随机端口进行绑定。
1条答案
按热度按时间1cklez4t1#
运行
docker run -d -p <random>:8080
时,日志中仍然显示随机端口另外,当我们运行
docker run -d -p <random>:8080
命令时,Docker将容器的端口8080Map到主机上的随机端口,以避免多个容器在同一主机上运行时发生端口冲突。我也获得了随机端口,但我可以成功部署和运行应用程序。docker ps
命令查看容器端口和主机端口之间的Map。在您的情况下,您可以尝试将
WEBSITES_PORT:8080
作为应用程序设置添加到应用程序服务的配置部分,并检查MSDoc中提供的解决方案是否可以帮助您解决问题。x1c 0d1x我通过创建一个示例spring Boot 应用程序在我的环境中复制并检查了相同的内容。使用命令
nano docker-compose.yml
和以下脚本创建了docker-compose.yml
:使用docker-compose,我已经使用下面的命令创建了一个docker-compose.yml文件应用服务:
docker-compose
部署我的容器。**结果:**应用部署并运行成功。x1c4d 1x