Я строю простое приложение DotnetCore с поддержкой docker-compose с VS2017.
У меня есть два Dockerfile, один для приложения и один для прокси NGINX. Кроме того, существует файл docker-compose.yml, который объединяет оба эти элемента вместе.
Это Dockerfile для приложения aspnetcore, там много операторов COPY, и все они работают правильно!
FROM microsoft/dotnet:2.0-runtime AS base
WORKDIR /app
FROM microsoft/dotnet:2.0-sdk AS build
WORKDIR /src
COPY CoreServer.sln ./
COPY CoreServer/CoreServer.csproj CoreServer/
RUN dotnet restore -nowarn:msb3202,nu1503
COPY . .
WORKDIR /src/CoreServer
RUN dotnet build -c Release -o /app
FROM build AS publish
RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "CoreServer.dll"]
Это Dockerfile nginx, который не может правильно копировать файлы. Вместо этого он выводит следующую ошибку:
Не удалось скопировать: stat /var/lib/docker/tmp/docker-builder780242597/nginx.conf: такого файла или каталога нет. # 1859
FROM nginx
WORKDIR /etc/nginx
COPY nginx.conf ./
COPY server.crt ./
COPY server.key ./
Я попытался собрать этот Dockerfile сам по себе, и он работает, но когда я использую docker-compose, он выдает ошибку выше.
Вот так выглядит файл docker-compose.yml
version: '3'
services:
coreserver:
image: coreserver
build:
context: .
dockerfile: CoreServer/Dockerfile
expose:
- "5000"
nginx:
build:
context: .
dockerfile: nginx/Dockerfile
ports:
- "80:80"
- "443:443"
links:
- coreserver
Если вы хотите ознакомиться с полным проектом, то это тестовое приложение для веб-сокета dotnetcore с сервером и клиентским приложением.
https://github.com/avboivin/WssCoreServer/tree/master/server
Может кто-нибудь сказать мне, что я делаю неправильно, чтобы docker send выдал эту конкретную ошибку?