1.创建一个net7 webapi 项目
配置docker-compose.yml 支持
Deploy 中放的docker-compose.yml 文件
2.dockerfile文件
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base
WORKDIR /app
EXPOSE 8001
#配置运行端口
ENV ASPNETCORE_ENVIRONMENT=Development
ENV ASPNETCORE_URLS http://+:8001
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /src
COPY ["Dev.DockerComposeTest.csproj", "./"]
RUN dotnet restore "./Dev.DockerComposeTest.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "Dev.DockerComposeTest.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "Dev.DockerComposeTest.csproj" -c Release -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Dev.DockerComposeTest.dll"]
#ENTRYPOINT ["dotnet", "Dev.DockerComposeTest.dll","--urls=http://*:8001"]
docker-compose.yml 文件
version: '3.4' services: docker-compose-demo01: build: context: ../Dev.DockerComposeTest/ dockerfile: Dockerfile image: docker-compose-demo01 container_name: docker-compose-demo01 restart: always environment: # 设置环境变量,相当于docker run命令中的-e TZ: Asia/Shanghai LANG: en_US.UTF-8 #ASPNETCORE_ENVIRONMENT: Development #ASPNETCORE_URLS: http://+:5011 #environment: # 设置环境变量,相当于docker run命令中的-e #- ASPNETCORE_ENVIRONMENT=Development #- ASPNETCORE_URLS=http://+:5009 ports: - "8001:8001" #选择网络 networks: - docker-compose-demo-net01 networks: docker-compose-demo-net01: driver: "bridge"
docker-compose.yml 操作方法
获得一个命令的帮助 docker-compose 命令 --help 构建并启动所有容器,如果镜像存在就重新构建 docker-compose up -d --build 启动所有服务 docker-compose up -d 构建启动nignx容器 docker-compose up -d nginx -f 指定使用的Compose配置文件启动,默认为docker-compose.yml,可以多次指定。 docker-compose -f docker-compose.yml up -d 运行一个服务,并在服务上执行一个命令 docker-compose run 容器id或容器名 ip addr 登录到nginx容器中 docker-compose exec nginx bash 此命令将会停止 up 命令所启动的容器,并移除网络 docker-compose down 列出项目中运行的所有容器 docker-compose ps 列出项目中运行及未运行的所有容器 docker-compose ps -a 列出所有运行的服务容器 docker-compose ls 列出所有服务容器(包括未运行的容器) docker-compose ls -a 重新启动nginx容器 docker-compose restart nginx 构建镜像 docker-compose build nginx 不带缓存的构建 docker-compose build --no-cache nginx 查看各个服务容器内运行的进程 docker-compose top 查看nginx的实时日志 docker-compose logs -f nginx 列出 Compose 文件包含的镜像 docker-compose images 验证文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息。 docker-compose config 以json的形式输出nginx的docker日志 docker-compose events --json nginx 暂停nignx容器 docker-compose pause nginx 恢复ningx容器 docker-compose unpause nginx 删除容器(删除前必须关闭容器,执行stop) docker-compose rm nginx 强制删除容器(不必先关闭容器) docker-compose rm -f nginx 停止nignx容器 docker-compose stop nginx 启动nignx容器 docker-compose start nginx 重启项目中的nignx容器 docker-compose restart nginx 下载依赖的镜像 docker-compose pull 推送服务依的镜像 docker-compose push 设置指定服务运行的容器个数。通过service=num的参数来设置数量 docker-compose scale web=3 db=2 查看版本信息 docker-compose version
标签:容器,compose,nginx,构建,build,dotnet,docker From: https://www.cnblogs.com/elsons/p/17040458.html