1.创建 Dockerfile 文件

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base

COPY . /publish

WORKDIR /publish

EXPOSE 80

# 指定容器运行端口

# EXPOSE 指定的端口无效, docker 还是会默认使用 80 端口,如果要使用其他端口,请使用如下指令

ENV ASPNETCORE_URLS=http://+:5001

# dotnet-project.dll 为项目编译后的 dll 文件

ENTRYPOINT ["dotnet", "dotnet-project.dll"]

2.创建 start.sh 文件

# 容器名称

APP="api"

VERSION="v1"

IMAGE=$APP:$VERSION

DOCKER_NAME="$APP_$VERSION"

# Dockerfile 文件路径

APP_DIR="/home/apps/csharp/api/publish/Dockerfile"

# 项目编译后的 dll 文件路径

PUBLISH_DIR="/home/apps/csharp/api/publish"

echo "--- delete container and image ---"

# 停止并删除容器和镜像

docker stop $DOCKER_NAME

docker rm $DOCKER_NAME

docker rmi $IMAGE

echo "+++ build docker images"

# 重新构建镜像

docker build -t $IMAGE .

echo "--- run docker images ---"

# 启动容器

CONTAINER_IDdocker run -dit -p 7229:7229 --name=$DOCKER_NAME --restart=always -v $PUBLISH_DIR:/publish $IMAGE

#docker logs -f $CONTAINER_ID

3.部署项目

将发布后的文件夹上传到服务器后, 在项目文件夹下执行如下指令即可将项目部署到 docker 中

$ sh start.sh


本站由 ddvlhr 使用 Stellar 创建。