докер-сочинение работает но геройку.ымл не получается? - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть файл 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 говорит, что их не существует?Что я делаю не так?

1 Ответ

0 голосов
/ 24 февраля 2019

Я думаю, что это, вероятно, связано с контекстом сборки.Я предполагаю, что Heroku не использует контекст из корня проекта, а использует каталог, в котором находится Dockerfile.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...