Многоэтапные переменные dockerfile и ARG / ENV - PullRequest
0 голосов
/ 23 мая 2019

У меня есть докер-файл, который выглядит так:

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-alpine AS base

ENV ASPNETCORE_URLS=http://+:50777
EXPOSE 50777

FROM mcr.microsoft.com/dotnet/core/sdk:2.2-alpine AS build-env

COPY . /app
RUN dotnet restore

WORKDIR /app

ARG ASPNETCORE_ENVIRONMENT="Production"
ARG DATABASE_CONN_STRING="Server=tcp:mssqldb,1433; Database=test; User=sa; Password=test123;"
ARG ALLOWED_CORS=http://localhost:3000
ARG DOTNET_RUNNING_IN_CONTAINER=true

WORKDIR /app/backend
RUN dotnet publish -c Release -o /app/out

FROM base as final

WORKDIR /app
COPY --from=build-env /app/out ./out

WORKDIR /app/out

ENTRYPOINT ["dotnet", "test.project.dll"]

В проекте используется контейнер базы данных и внутренний контейнер, предоставляющий порт 50777 для взаимодействия с API.

Учитывая приведенный выше файл docker, сборка успешно завершена, и приложение работает в контейнере, но я не могу получить доступ к API бэкэнда.

Теперь я понял, что ENV используется при запуске контейнера, а ARG используется во время сборки, так что может быть причиной, по которой я не могу подключиться к нему?

[EDIT] * * +1010

Команда запуска Docker:

docker run -d --name api -p 50777:50777 -it test-image tail -f /dev/null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...