У меня не получается понять, как работает докер-контейнер. Из того, что я знаю, если в контейнере нет активных процессов, он автоматически отключается независимо от данных команд.
Вот почему я приказал своему docker-compose.yml
выполнить эту команду, которая поддерживает ее:
gateway:
build: .
image: me/gateway
container_name: gateway
command: tail -F /dev/null <------
# restart: always
ports:
- "10091:10091"
volumes:
- ./logs:/root/logs
- vendor:/root/vendor
- .:/root
env_file:
- .env
Пока мой Dockerfile
делает следующее:
FROM php:7-fpm-alpine
EXPOSE 10091
WORKDIR /root
COPY . .
COPY src/scripts/generateConfig.sh /usr/local/bin/generateConfig
RUN ["chmod", "+x", "/usr/local/bin/generateConfig"]
В этом сценарии контейнер остается, и все в порядке. Однако я хотел бы запустить скрипт после запуска контейнера, поэтому я добавил дополнительную строку в конец моего Dockerfile
:
ENTRYPOINT ["generateConfig"]
После выполнения команды контейнер автоматически останавливается. Когда я проверяю журнал, ошибок нет, так как скрипт выполняет свою работу так, как должен. Скрипт отвечает за бесконечный запуск процесса веб-сокета Ratchet.
Как я могу заставить скрипт работать и одновременно поддерживать работу моего контейнера?