Остановка облачных сервисов Docker со сценарием не найдена
Я пытался развернуть свое приложение с помощью облачного стека Docker. Я проверил это локально, и я также протестировал с docker-compose, и они работали успешно.
Однако, когда я пытался развернуть свой докер-контейнер из реестра, который находится в моем репозитории Docker с помощью стека облаков Docker, он всегда останавливается с помощью приведенного ниже кода.
[app-1]2018-02-10T06:09:03.316866500Z script not found : /src/dist/index.js
[app-1]2018-02-10T06:09:03.317330400Z Exiting PM2
[app-1]2018-02-10T06:09:03.442521200Z 0 application online, exiting
[app-1]2018-02-10T06:09:03.442686000Z Exiting PM2
Я пытался установить src/dist/index.js
в dist/index.js
и перепробовал много других вещей, и ни одна из них не работала на меня.
Мой Dockerfile выглядит ниже.
FROM dooboolab/ubuntu-nodejs-ffmpeg-sharp:latest
WORKDIR /src
COPY package*.json ./
# RUN npm install
RUN npm install --only=production
# If you are building your code for production
# Bundle app source
ADD . /src
EXPOSE 3000
CMD ["pm2-docker", "/dist/index.js"]
И мой файл стека прост, как показано ниже. app: environment: - NODE_ENV= производственный образ: 'my_private_image: последние' порты: - '3000:3000'
Снова, my_private_image:latest
прекрасно работает, когда я собираю свой контейнер из репозитория Docker на моей локальной машине.
Что еще я могу попробовать еще, чтобы решить эту проблему?
1 ответ
Я нашел решение. Это было потому, что локально он ссылался на относительный путь. Однако при запуске из стека докеров он выполняется по абсолютному пути, поэтому путь был другим.
Чтобы успешно собрать из docker-stack, мне пришлось установить абсолютный путь в образе и собрать его.