Я запускал веб-сайт с помощью ASP.NET 5.0 beta 7 в контейнере Docker, используя официальный образ Docker — https://github.com/aspnet/aspnet-docker, который работал нормально.
Недавно я обновил свой проект до бета-версии 8 и изменил Dockerfile, чтобы использовать бета-версию 8 образа Docker. Все работает нормально, когда я запускаю его локально на своем компьютере с Windows, независимо от того, использую ли я Visual Studio для запуска проекта с помощью IIS Express или запускаю его с помощью Kestrel.
Однако, когда я отправляю его на свой сервер Dokku, он, похоже, не запускается должным образом. Я не получаю никаких ошибок из вывода контейнера, но у меня есть файл ПРОВЕРОК, который Dokku использует для проверки запуска веб-сервера, и это не удается (указывает на то, что он не запустился должным образом или не слушает, как должно быть) . Я попытался удалить ПРОВЕРКИ, и я также не могу подключиться к нему - я получаю сообщение о плохом шлюзе от nginx.
Я не знаю, почему это происходит, потому что, когда я нажимаю на Dokku, я получаю следующий ответ:
...
remote: [1G-----> Attempt 5/5 Waiting for 10 seconds ...[K
remote: [1G CHECKS expected result:[K
remote: [1G http://localhost/ => "My Website"[K
remote: Could not start due to 1 failed checks.[K
remote: [1G ! [K
remote: [1Gcurl: (7) Failed to connect to 172.17.2.14 port 5000: Connection refused[K
remote: [1G ! Check attempt 5/5 failed.[K
remote: [1G=====> mywebsite container output:[K
remote: [1G info : [Microsoft.Framework.DependencyInjection.DataProtectionServices] User profile is available. Using '/root/.local/share/ASP.NET/DataProtection-Keys' as key repository; keys will not be encrypted at rest.[K
remote: [1G Hosting environment: Production[K
remote: [1G Now listening on: http://localhost:5000[K
remote: [1G Application started. Press Ctrl+C to shut down.[K
remote: [1G=====> end mywebsite container output[K`
...
Это кажется странным, потому что похоже, что он запускается, но после того, как проверки не удались. Как я уже сказал, удаление проверок означает, что он успешно развернут, но тогда я не могу к нему подключиться.
Мой Dockerfile:
FROM microsoft/aspnet:1.0.0-beta8
# Install NPM
RUN apt-get update && apt-get install -y curl
RUN curl -sL https://deb.nodesource.com/setup | bash -
RUN apt-get install -y nodejs
# Install Gulp
RUN npm install -g gulp
COPY . /app
WORKDIR /app
RUN ["dnu", "restore"]
WORKDIR ./src/mywebsite
RUN ["npm", "install"]
RUN ["gulp", "min"]
EXPOSE 5000
ENTRYPOINT dnx kestrel