Heroku: точка входа в докер не найдена - PullRequest
2 голосов
/ 11 декабря 2019

Я пытаюсь развернуть проект на Heroku. Я установил приложение точки входа bash, которое находится в корневом каталоге приложения. Содержимое Dockerfile:

FROM node:10

# Create app directory
WORKDIR /usr/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 ./

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

# Bundle app source
COPY . .

RUN entrypoint.sh

Когда heroku пытается развернуться, происходит сбой при вызове точки входа в этой строке:

RUN entrypoint.sh

Это говорит о том, что entrypoint.sh не найден - хотя он расположенв каталоге проекта, и он добавляется в контейнер. Смотри структуру проекта здесь .

Ответы [ 2 ]

1 голос
/ 11 декабря 2019

Используйте директиву ENTRYPOINT в файле Docker, чтобы установить скрипт в точке входа ENTRYPOINT ["./entrypoint.sh"] Также убедитесь, что он исполняемый (разрешения)

0 голосов
/ 15 декабря 2019

Есть ли у вас heroku.yml в корневом каталоге? Если так, то в вашем операторе heroku.yml под управлением run вы, вероятно, определили тот же процесс, поэтому он говорит, что разрешение отклонено.

Здесь важны две вещи:

  1. Если команда запуска определена в heroku.yml, то Heroku использует эту команду вместо команды, определенной в dockerfile.

  2. Используйте оператор CMD, так как это то, что выполняет Heroku, взгляните на их документацию

Если выНе включайте раздел запуска, Heroku использует CMD, указанный в Dockerfile.

...