Por que o Docker-compose falha ao copiar arquivos locais para o contêiner

0

Estou criando um aplicativo DotnetCore simples com suporte ao docker-compose com o VS2017.

Eu tenho dois Dockerfile, um para o aplicativo e um para um proxy NGINX. Além disso, há um arquivo docker-compose.yml que envolve os dois juntos.

Este é o aplicativo Dockerfile do aspnetcore, há muitas instruções COPY lá e todas funcionam corretamente!

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"]

Este é o Dockerfile nginx, que não consegue copiar os arquivos corretamente. Em vez disso, gera o seguinte erro:

COPY falhou: stat /var/lib/docker/tmp/docker-builder780242597/nginx.conf: não existe tal arquivo ou diretório. # 1859

FROM nginx

WORKDIR /etc/nginx

COPY nginx.conf ./
COPY server.crt ./
COPY server.key ./

Eu tentei criar este Dockerfile sozinho e funciona, mas quando eu uso o docker-compose ele dá o erro acima.

Isto é o que parece ser o arquivo 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

Se você quiser ver o projeto completo, é um aplicativo de teste de servidor dotscore websocket com um servidor e um aplicativo cliente.

link

Alguém pode me dizer o que estou fazendo errado para que o docker send forneça esse erro específico?

    
por A_V 20.03.2018 / 15:05

1 resposta

1

Parece que isso é um bug.

Eu encontrei a solução aqui:

link

O que estava simplesmente movendo o Dockerfile que estava tendo problemas no nível raiz do arquivo docker-compose.yaml.

    
por 21.03.2018 / 03:28