我正在使用 docker-compose 托管使用 .Net Core 模板创建的 .Net Core Web 应用程序。
我的 docker-compose 如下:
version: '3.4'
services:
db:
image: mysql:5.7
container_name: mysql_db
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: "root"
MYSQL_HOST: "localhost"
MYSQL_ROOT_HOST: "%"
todoservice:
image: ${DOCKER_REGISTRY}todoservice
ports:
- "8000:80"
build:
context: .
dockerfile: ToDoService/Dockerfile
depends_on:
- db
volumes:
db_data:
Run Code Online (Sandbox Code Playgroud)
其中我声明我的主机端口 8000 将映射到此 docker 容器上的端口 80。我还有这个 dockerfile 定义了如何构建我的 .Net Core Web Api。
FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY ToDoService/ToDoService.csproj ToDoService/
RUN dotnet restore ToDoService/ToDoService.csproj
COPY . .
WORKDIR /src/ToDoService
RUN dotnet build ToDoService.csproj -c Release -o /app
FROM build AS publish
RUN dotnet publish ToDoService.csproj -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "ToDoService.dll"]
Run Code Online (Sandbox Code Playgroud)
运行后docker-compose up -d,我看到我的 ToDoService 列出了 PORTS 的以下信息:
0.0.0.0:8000->80/tcp, 0.0.0.0:32772->80/tcp
那么随机分配的 32772 端口是从哪里来的呢?
小智 0
当我指定 :443 时,它会使用我设置的端口(这里我选择端口为 51836)一致地运行调试(docker compose 设置为 VS)。我还在同一端口上获得了 Swagger 端点:https://localhost:51836/swagger/index.html
我的 docker-compose.yml:
version: '3.4'
services:
company.api.authservices:
image: ${DOCKER_REGISTRY-}company-api-auth-services
build:
context: .
dockerfile: Company.Api.AuthServices/Dockerfile
environment:
- ASPNETCORE_ENVIRONMENT=Production
ports:
- "51830:80"
- "51836:443"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1917 次 |
| 最近记录: |