【发布时间】:2019-10-15 11:44:16
【问题描述】:
从 docker-compose 重构为每个项目的单独 Docker 文件后,我无法运行容器,它只是退出。我同时使用 docker 和 docker-compose,因为我以后会有更多项目。
我的docker文件如下。
docker-compose.yml
version: '3'
services:
customer:
image: customer
container_name: customer
build:
context: ./Customer
dockerfile: Dockerfile
客户/Dockerfile
FROM mcr.microsoft.com/dotnet/core/runtime:2.2
WORKDIR /Customer
EXPOSE 80
COPY ./bin/Release/netcoreapp2.2/ service/
ENTRYPOINT ["dotnet", "service/Customer.dll"]
我之前在 docker-compose 文件中也有这个。如何在Dockerfile 内将6001 映射到80?
ports:
- 6001:80
尝试 2
FROM mcr.microsoft.com/dotnet/core/sdk:2.2
WORKDIR /Customer
ENV DATABASE_HOST=database
ENV DATABASE_NAME=db
ENV DATABASE_USER=sa
ENV DATABASE_PASSWORD=Password
EXPOSE 80
COPY . .
CMD dotnet build
ENTRYPOINT ["dotnet", "Customer/bin/Release/netcoreapp2.2/Department.dll"]
尝试 3
从主站点复制。
从这里复制https://docs.docker.com/engine/examples/dotnetcore/
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-env
WORKDIR /app
# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore
# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
您的意思是运行 dotnet SDK 命令吗?请安装 dotnet SDK 来自:https://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
【问题讨论】:
-
当您使用 Dockerfile 运行容器时,它是否正在运行?你先验证了吗
-
日志是空的,没有活动,我检查 docker container ls,什么都没有
-
eb3444bdc367 customer "bash" 9 minutes ago Exited (0) 9 minutes ago -
你同意我写 docker 和 docker-compose 文件的方式吗?我也在运行
consul,另一个服务,我看到列出的容器,但是这个 .net 核心失败 -
我会给你样品,一会儿。
标签: docker .net-core docker-compose