Я пытаюсь запустить приложение next.js в док-контейнере на основе phusion / passenger-docker.
У меня есть то, что я считаю полной установкой, основанной на документации пассажирского докера, но яполучаю страницу 404 от nginx.
Дамп журнала Docker показывает, что пассажир или nginx ищет index.html
[error] 48#48: *1 "/home/app/nhe_app/index.html" is not found
Мой файл запуска /home/app/nhe_app/server.js
Последний этап Dockerfile:
# Build production container from builder stage
FROM phusion/passenger-nodejs:1.0.8
# Set correct environment variables.
ENV HOME /root
ENV NODE_ENV=production
# Use baseimage-docker's init system.
CMD ["/sbin/my_init"]
# Enable Nginx and Passenger
RUN rm -f /etc/service/nginx/down
WORKDIR /home/app/nhe_app
RUN rm /etc/nginx/sites-enabled/default
COPY --chown=app:app ./nhe_app.conf /etc/nginx/sites-enabled/nhe_app.conf
COPY --chown=app:app ./secret_key.conf /etc/nginx/main.d/secret_key.conf
COPY --chown=app:app ./gzip_max.conf /etc/nginx/conf.d/gzip_max.conf
COPY --chown=app:app --from=builder /app/server.js /app/.env /home/app/nhe_app/
COPY --chown=app:app --from=builder app/src /home/app/nhe_app/src
COPY --chown=app:app --from=builder app/node_modules /home/app/nhe_app/node_modules
# Clean up APT when done.
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
Конфигурация nginx - nhe_app.conf:
server {
listen 80;
server_name glen-mac.local;
root /home/app/nhe_app/server.js;
passenger_enabled on;
passenger_user app;
passenger_startup_file server.js;
}
Я ожидаю, что пассажир запустит nginx и запустит мое приложение.
Когда я собираю и запускаю Docker-контейнер, кажется, он ожидает index.html
.
Я собираю Docker-контейнер с помощью docker image build -t nhe_app .
И запускаю его с помощью docker container run --name nhe_app -p 80:3000 nhe_app
При просмотре http://glen-mac.local/
отображается отформатированная страница 404 nginx.
Как настроить пассажирский докер для поиска и выполнения моего server.js
вместо index.html
?