У меня есть приложение, которое использует swagger-express-mw
библиотеку, и я начинаю мое приложение следующим образом:Кураж экспресс дает ошибку внутри контейнера Docker
SwaggerExpress.create({ appRoot: __dirname }, (err, swaggerExpress) => {
// initialize application, connect to db etc...
}
Все отлично на моей локальной машине OSX работает. Но когда я использую boot2docker построить изображение из моего приложения и запустить его, я получаю следующее сообщение об ошибке:
/usr/src/app/node_modules/swagger-node-runner/index.js:154
config.swagger = _.defaults(readEnvConfig(),
^
TypeError: Cannot assign to read only property 'swagger' of [object Object]
Мой dockerfile выглядит так (ничего особенного):
FROM node:latest
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app/
RUN npm set progress=false
RUN npm install
COPY . /usr/src/app
EXPOSE 5000
CMD ["npm", "run", "dev"]
Кто-нибудь еще сталкивался аналогичные ситуации, в которых работала локальная среда, но приложение запустило ошибку в контейнере докера?
Спасибо!
Это была проблема с моей установкой npm, я использовал самую новую версию и устанавливал все модули в плоской иерархии. Когда я использовал опцию -legacy-bundling, она работала. – Alistair