diff --git a/Dockerfile b/Dockerfile index d1bf5ecd..94cbfb82 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,8 +17,9 @@ RUN printf "Package: *\nPin: release a=testing\nPin-Priority: 750\n" > /etc/apt/ RUN printf "deb http://mirror.steadfast.net/debian/ stable main contrib non-free\ndeb-src http://mirror.steadfast.net/debian/ stable main contrib non-free" > /etc/apt/sources.list.d/stable.list RUN printf "deb http://mirror.steadfast.net/debian/ testing main contrib non-free\ndeb-src http://mirror.steadfast.net/debian/ testing main contrib non-free" > /etc/apt/sources.list.d/testing.list -# Install Node.js GDAL, nginx, letsencrypt -RUN apt-get -qq update && apt-get -qq install -t testing -y binutils libproj-dev gdal-bin nginx && apt-get -qq install -y gettext-base cron certbot +# Install Node.js GDAL, nginx, letsencrypt, psql +RUN apt-get -qq update && apt-get -qq install -t testing -y binutils libproj-dev gdal-bin nginx && apt-get -qq install -y gettext-base cron certbot postgresql-client-9.6 + # Install pip reqs ADD requirements.txt /webodm/ @@ -32,10 +33,10 @@ RUN ln -s /webodm/nginx/crontab /etc/cron.d/nginx-cron && chmod 0644 /webodm/ngi RUN git submodule update --init WORKDIR /webodm/nodeodm/external/node-OpenDroneMap -RUN npm install +RUN npm install --quiet WORKDIR /webodm -RUN npm install -g webpack && npm install && webpack +RUN npm install --quiet -g webpack && npm install --quiet && webpack RUN python manage.py collectstatic --noinput RUN rm /webodm/webodm/secret_key.py diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index f59aa789..cf72c55a 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -1,6 +1,6 @@ version: '2' services: webapp: - entrypoint: /bin/bash -c "chmod +x /webodm/*.sh && /bin/bash -c \"/webodm/wait-for-it.sh db:5432 -- /webodm/start.sh --create-default-pnode --setup-devenv\"" + entrypoint: /bin/bash -c "chmod +x /webodm/*.sh && /bin/bash -c \"/webodm/wait-for-postgres.sh db /webodm/start.sh --create-default-pnode --setup-devenv\"" volumes: - .:/webodm diff --git a/docker-compose.nodeodm.yml b/docker-compose.nodeodm.yml index 98e2d6b6..bf978e0c 100644 --- a/docker-compose.nodeodm.yml +++ b/docker-compose.nodeodm.yml @@ -5,7 +5,7 @@ version: '2' services: webapp: - entrypoint: /bin/bash -c "chmod +x /webodm/*.sh && /bin/bash -c \"/webodm/wait-for-it.sh db:5432 -- /webodm/start.sh --create-default-pnode\"" + entrypoint: /bin/bash -c "chmod +x /webodm/*.sh && /bin/bash -c \"/webodm/wait-for-postgres.sh db /webodm/start.sh --create-default-pnode\"" depends_on: - node-odm-1 node-odm-1: diff --git a/docker-compose.yml b/docker-compose.yml index 50cb3218..60e89438 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -17,7 +17,7 @@ services: webapp: image: opendronemap/webodm_webapp container_name: webapp - entrypoint: /bin/bash -c "chmod +x /webodm/*.sh && /bin/bash -c \"/webodm/wait-for-it.sh db:5432 -- /webodm/start.sh\"" + entrypoint: /bin/bash -c "chmod +x /webodm/*.sh && /bin/bash -c \"/webodm/wait-for-postgres.sh db /webodm/start.sh\"" volumes: - ${WO_MEDIA_DIR}:/webodm/app/media ports: diff --git a/wait-for-postgres.sh b/wait-for-postgres.sh new file mode 100755 index 00000000..2566cf67 --- /dev/null +++ b/wait-for-postgres.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +host="$1" +shift +cmd="$@" + +until psql -h "$host" -U "postgres" -c '\q'; do + >&2 echo "Postgres is unavailable - sleeping" + sleep 1 +done + +>&2 echo "Postgres is up - executing command" +exec $cmd \ No newline at end of file