我有一个带有三个容器的简单docker堆栈:一个mysql,一个php-fpm和一个nginx。
我只是希望每次创建容器时都能执行我的doctrine迁移和symfony命令。
目前,当我在构建和docker-compose up -d之后键入 docker logs #myphpcontainername#时,我收到类似错误:“entrypoint.sh not found”。
我的php-fpm docker文件:
FROM php:7.2-fpm
RUN apt-get update
RUN apt-get install -y zlib1g-dev libpq-dev git libicu-dev libxml2-dev \
......
RUN curl --insecure https://getcomposer.org/composer.phar -o /usr/bin/composer && chmod +x /usr/bin/composer
WORKDIR /var/www/symfony
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ['/entrypoint.sh']
我的entrypoint.sh,与我的Dockerfile位于同一个地方:
#!/bin/bash
set -e
sleep 5
php /var/www/symfony/bin/console doctrine:migrations:migrate --no-interaction --allow-no-migration
exec "$@"
答案 0 :(得分:0)
我相信您需要将该文件设为可执行文件
hotmailBcom
或者它应该是
RUN chmod 0700 entrypoint.sh
看看这篇文章有一个很好的解释 https://www.ctl.io/developers/blog/post/dockerfile-entrypoint-vs-cmd/
答案 1 :(得分:0)
试试这个
ADD . /var/www/symfony
WORKDIR /var/www/symfony
RUN chmod +x entrypoint.sh
...
CMD ["/var/www/symfony/entrypoint.sh"]