Express сервер работает как Docker контейнер изображений, обслуживающий только некоторые html страницы - PullRequest
0 голосов
/ 18 февраля 2020

Проблема

Узел / express Docker образ, работающий локально, обслуживающий некоторые html страницы, а не другие

Объяснение

У меня есть приложение Node / Express как образ Docker, который запускается локально как контейнер Docker. Это приложение обслуживает html страниц обычным образом, как при использовании Express. Однако кажется, что я могу получить доступ только к некоторым из этих страниц, но не к другим, несмотря на то, что маршруты express почти идентичны

server.js

app.get('/', function (req, res) {
  res.render('index', {
    user: req.user
  });
});

app.get('/signup/terms', function (req, res, ) {
  res.render('signup/terms', {
    user: req.user
  })
})

app.get('/signup/map', function (req, res, ) {
  res.render('signup/map', {
    user: req.user
  })
})

Я могу получить доступ к индексу и / подписке / условиям без проблем, все html, css и изображения загружаются, но при посещении / регистрации / карте я получаю код состояния 500

GET /signup/map 500 5.980 ms - 47

То, что я пробовал:

Я попытался просмотреть каталог файлов контейнера docker, используя:

docker exec -it <container> sh

, чтобы проверить, есть ли все файлы, и они есть, и изображение до date.

Вот конфигурация docker, которую я использовал для создания образа:

FROM node:10-alpine

# Create app directory
WORKDIR /app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./

# DEV RUN npm install
# If you are building your code for production
# RUN npm ci --only=production
RUN npm ci --only=production

# Bundle app source
COPY . /app

EXPOSE 3000
CMD [ "node", "server.js" ]

Я также попытался перестроить образ с опцией --no-cache, но безрезультатно .

Я подумал, что это может быть проблема с каталогом, но тот факт, что некоторые страницы служат, а некоторые нет, вызывает недоумение ...

Кто-нибудь знает, что здесь происходит?

Обновление: Оказывается, это была проблема с шаблонизацией e js. У меня были страницы с непропущенными переменными, из-за которых сервер выбрасывал статус 500.

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