Я понял, что должен быть только один процесс, выполняющийся на переднем плане в контейнере докера.Есть ли шанс запустить Apache и Cron вместе на переднем плане?Быстрый поиск говорит, что для этого есть нечто, называемое супервизором.Но есть ли другой метод, использующий скрипт Entrypoint или CMD?
Вот мой Dockerfile
FROM alpine:edge
RUN apk update && apk upgrade
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk /repositories
RUN apk add \
bash \
apache2 \
php7-apache2 \
php7 \
curl \
php7-mysqli \
php7-pdo \
php7-pdo_mysql
RUN cp /usr/bin/php7 /usr/bin/php
RUN mkdir /startup
COPY script.sh /startup
RUN chmod 755 /startup/script.sh
ENTRYPOINT ["/startup/script.sh"]
Содержимое файла script.sh вставляется ниже
#!/bin/bash
# start cron
/usr/sbin/crond -f -l 8
# start apache
httpd -D FOREGROUND
КогдаДокер запускается с этим образом, только crond работает, и что самое интересное, когда я убиваю cron, тогда apache запускается и работает на переднем плане.
Я использую aws ecs ec2 для запуска контейнера Docker, используя определение задачи и службу.