Docker堆栈和Doctrine迁移

时间:2018-03-01 18:26:34

标签: php symfony docker doctrine

我有一个带有三个容器的简单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 "$@"

2 个答案:

答案 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"]