我需要在PowerShell中手动完成从我的解决方案(asp.net核心Web应用程序)创建Docker镜像时Visual Studio 2017自动执行的操作。
docker-compose -f "docker-compose.yml" -f "docker-compose.override.yml" -f "docker-
compose.vs.release.yml" -p dockercompose32 up --build -d
它会创建新图像(当我从头开始构建但如果项目中的某些内容发生更改则不会重建旧图像)并且docker ps
显示:
CONTAINER ID COMMAND CREATED STATUS PORTS NAMES
3b9b2996cf61 "tail -f /dev/null" 20 minutes ago Up 20 minutes 0.0.0.0:32812->80/tcp dockercompose32_some_name
但在http://localhost:32812/api/values/
我收到错误GET http://localhost:32804/api/values/ net::ERR_CONNECTION_REFUSED
,如果我使用docker run -d -p 4000:80 image_name
从同一图片运行容器,则可以正常运行。
我错过了什么?
答案 0 :(得分:0)
要从图像中提取更改,我会将其作为三个命令运行:
export COMPOSE_FILE="docker-compose.yml:docker-compose.override.yml:docker-compose.vs.release.yml"
export COMPOSE_PROJECT_NAME=dockercompose32
docker-compose pull
docker-compose build
docker-compose up -d
如果构建没有显示任何更改,则构建命令可能无法查看已更改的内容。如果更改来自docker上下文之外的某些内容,则可以使用docker-compose build --no-cache
,这将强制重建整个映像,即使它通常会使用缓存。