У меня есть файл docker-compose, который отлично работает, и скрипт test-container.ps1, который запускает docker-compose.Все отлично работает локально.
version: '3.4'
services:
horizon.api.v1:
image: ${DOCKER_REGISTRY-}horizonapiv1
environment:
ASPNETCORE_ENVIRONMENT: Development
build:
context: .
dockerfile: api/horizon.api.v1/Dockerfile
Вот файл docker, к которому относятся файлы docker-compose и heroku.yml:
# horizon.api
FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM microsoft/dotnet:2.2-sdk AS build
WORKDIR /src
COPY api/horizon.api.v1/horizon.api.v1.csproj api/horizon.api.v1/
RUN dotnet restore api/horizon.api.v1/horizon.api.v1.csproj
COPY . .
WORKDIR /src/api/horizon.api.v1
RUN dotnet build horizon.api.v1.csproj -c Release -o /app
FROM build AS publish
RUN dotnet publish horizon.api.v1.csproj -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "horizon.api.v1.dll"]
Я хотел, чтобы это запустилось в Heroku, поэтомумои ученики могли видеть, как он работает, и поэтому ученики, у которых нет доступа к докеру, могли играть с приложением.Я сделал файл heroku.yml, который выглядит так, как будто он должен работать ... но я впервые использую heroku и, вероятно, я делаю что-то глупое.
build:
config:
ASPNETCORE_ENVIRONMENT: Development
docker:
api: ./api/horizon.api.v1/Dockerfile
Когда я пытаюсь перенести репо в heroku, я получаю следующую ошибку:
remote: Шаг 7/17: COPY ["routing / horizon.routing / horizon.routing.csproj","routing / horizon.routing /"]
remote: копирование не выполнено: stat /var/lib/docker/tmp/docker-builder722311220/routing/horizon.routing/horizon.routing.csproj: такого файла нет илиdirectory
Я видел несколько постов в Интернете о файле .dockerignore, вызывающем проблемы, поэтому я переименовал свой файл .dockerignore, чтобы убрать его из картинки, пока не выясню это.
пути должны быть правильными, почему у docker-compose нет проблем с поиском необходимых путей на моей локальной машине, но heroku говорит, что их не существует?Что я делаю не так?