|
1 | 1 | #!/bin/sh |
2 | 2 |
|
| 3 | +COMMAND_ARG1="$1" |
| 4 | +COMMAND_ARG2="$2" |
| 5 | + |
| 6 | +cd /var/www/wallabag || exit |
| 7 | + |
3 | 8 | provisioner () { |
4 | | - echo "Starting provisioner..." |
5 | | - if ! out=`ansible-playbook -i /etc/ansible/hosts /etc/ansible/entrypoint.yml -c local "$@"`;then |
6 | | - echo $out; |
| 9 | + SYMFONY__ENV__DATABASE_DRIVER=${SYMFONY__ENV__DATABASE_DRIVER:-pdo_sqlite} |
| 10 | + POPULATE_DATABASE=${POPULATE_DATABASE:-True} |
| 11 | + |
| 12 | + envsubst < app/config/parameters.template.yml > app/config/parameters.yml |
| 13 | + |
| 14 | + if [ "$SYMFONY__ENV__DATABASE_DRIVER" = "pdo_sqlite" ]; then |
| 15 | + if [ ! -f "/var/www/wallabag/data/db/wallabag.sqlite" ]; then |
| 16 | + su -c "php bin/console wallabag:install --env=prod -n" -s /bin/sh nobody |
| 17 | + fi |
| 18 | + fi |
| 19 | + |
| 20 | + if [ "$POPULATE_DATABASE" = "True" ] && [ "$SYMFONY__ENV__DATABASE_DRIVER" = "pdo_mysql" ]; then |
| 21 | + timeout 60s /bin/sh -c "until echo 'Waiting for MariaDB ...' && mysql -h ${SYMFONY__ENV__DATABASE_HOST} --port ${SYMFONY__ENV__DATABASE_PORT} -uroot -p${MYSQL_ROOT_PASSWORD} -e 'show databases;' > /dev/null 2>&1 ; do sleep 1 ; done" |
| 22 | + mysql -h "${SYMFONY__ENV__DATABASE_HOST}" --port "${SYMFONY__ENV__DATABASE_PORT}" -uroot -p"${MYSQL_ROOT_PASSWORD}" \ |
| 23 | + -e "CREATE DATABASE ${SYMFONY__ENV__DATABASE_NAME} CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" |
| 24 | + if [ "$SYMFONY__ENV__DATABASE_USER" != "root" ]; then |
| 25 | + mysql -h "${SYMFONY__ENV__DATABASE_HOST}" --port "${SYMFONY__ENV__DATABASE_PORT}" -uroot -p"${MYSQL_ROOT_PASSWORD}" \ |
| 26 | + -e "CREATE USER '${SYMFONY__ENV__DATABASE_USER}'@'%' IDENTIFIED BY '${SYMFONY__ENV__DATABASE_PASSWORD}';" |
| 27 | + mysql -h "${SYMFONY__ENV__DATABASE_HOST}" --port "${SYMFONY__ENV__DATABASE_PORT}" -uroot -p"${MYSQL_ROOT_PASSWORD}" \ |
| 28 | + -e "GRANT ALL PRIVILEGES ON ${SYMFONY__ENV__DATABASE_NAME}.* TO '${SYMFONY__ENV__DATABASE_USER}'@'%';" |
| 29 | + fi |
| 30 | + su -c "php bin/console wallabag:install --env=prod -n" -s /bin/sh nobody |
| 31 | + fi |
| 32 | + |
| 33 | + if [ "$POPULATE_DATABASE" = "True" ] && [ "$SYMFONY__ENV__DATABASE_DRIVER" = "pdo_pgsql" ]; then |
| 34 | + export PGPASSWORD="${POSTGRES_PASSWORD}" |
| 35 | + timeout 60s /bin/sh -c "until echo 'Waiting for Postgres ...' && pg_isready -h ${SYMFONY__ENV__DATABASE_HOST} -p ${SYMFONY__ENV__DATABASE_PORT} -U ${POSTGRES_USER} > /dev/null 2>&1 ; do sleep 1 ; done" |
| 36 | + psql -q -h "${SYMFONY__ENV__DATABASE_HOST}" -p "${SYMFONY__ENV__DATABASE_PORT}" -U "${POSTGRES_USER}" \ |
| 37 | + -c "CREATE DATABASE ${SYMFONY__ENV__DATABASE_NAME};" |
| 38 | + if [ "$SYMFONY__ENV__DATABASE_USER" != "postgres" ]; then |
| 39 | + psql -q -h "${SYMFONY__ENV__DATABASE_HOST}" -p "${SYMFONY__ENV__DATABASE_PORT}" -U "${POSTGRES_USER}" \ |
| 40 | + -c "CREATE ROLE ${SYMFONY__ENV__DATABASE_USER} with PASSWORD '${SYMFONY__ENV__DATABASE_PASSWORD}' LOGIN;" |
| 41 | + fi |
| 42 | + su -c "php bin/console wallabag:install --env=prod -n" -s /bin/sh nobody |
7 | 43 | fi |
8 | | - echo "Provisioner finished." |
| 44 | + |
| 45 | + rm -f -r /var/www/wallabag/var/cache |
| 46 | + su -c "SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist" -s /bin/sh nobody |
9 | 47 | } |
10 | 48 |
|
11 | | -if [ "$1" = "wallabag" ];then |
| 49 | +if [ "$COMMAND_ARG1" = "wallabag" ]; then |
| 50 | + echo "Starting Wallabag..." |
12 | 51 | provisioner |
| 52 | + echo "Wallabag is ready!" |
13 | 53 | exec s6-svscan /etc/s6/ |
14 | 54 | fi |
15 | 55 |
|
16 | | -if [ "$1" = "import" ];then |
17 | | - provisioner --skip-tags=firstrun |
18 | | - cd /var/www/wallabag/ |
19 | | - exec su -c "bin/console wallabag:import:redis-worker --env=prod $2 -vv" -s /bin/sh nobody |
| 56 | +if [ "$COMMAND_ARG1" = "import" ]; then |
| 57 | + provisioner |
| 58 | + exec su -c "bin/console wallabag:import:redis-worker --env=prod $COMMAND_ARG2 -vv" -s /bin/sh nobody |
20 | 59 | fi |
21 | 60 |
|
22 | | -if [ "$1" = "migrate" ];then |
| 61 | +if [ "$COMMAND_ARG1" = "migrate" ]; then |
23 | 62 | provisioner |
24 | | - cd /var/www/wallabag/ |
25 | 63 | exec su -c "bin/console doctrine:migrations:migrate --env=prod --no-interaction" -s /bin/sh nobody |
26 | 64 | fi |
27 | 65 |
|
|
0 commit comments