Add a postgres database container.
- Set environemnt variables for Postgresql database in the compose file - Set environment variables for uwsgi in the compose file - Check if the postgresql container is up and accepting connections before running any actual services.
This commit is contained in:
@@ -5,6 +5,7 @@ MAINTAINER Abhilash Raj
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y ruby-sass \
|
||||
git \
|
||||
postgresql-client \
|
||||
&& python -m pip install git+https://gitlab.com/mailman/mailmanclient.git \
|
||||
git+https://gitlab.com/mailman/postorius.git \
|
||||
git+https://gitlab.com/mailman/django-mailman3.git \
|
||||
@@ -15,21 +16,13 @@ RUN apt-get update \
|
||||
|
||||
ADD mailman-web /opt/mailman-web
|
||||
|
||||
ADD assets/run.sh /opt/run.sh
|
||||
|
||||
WORKDIR /opt/mailman-web
|
||||
|
||||
EXPOSE 8000
|
||||
|
||||
# ENV DJANGO_SETTINGS_MODULE=mailman-web.settings
|
||||
|
||||
ENV UWSGI_WSGI_FILE=wsgi.py UWSGI_HTTP=:8000 UWSGI_WORKERS=2 \
|
||||
UWSGI_THREADS=4
|
||||
|
||||
CMD python manage.py collectstatic --noinput \
|
||||
&& python manage.py migrate \
|
||||
&& uwsgi --http-auto-chunked --http-keepalive
|
||||
|
||||
#ADD assets/run.sh /opt/run.sh
|
||||
|
||||
#ENTRYPOINT /opt/run.sh
|
||||
|
||||
# CMD ["uwsgi", "--http-auto-chunked", "--http-keepalive"]
|
||||
CMD ["/opt/run.sh"]
|
||||
|
||||
31
web/assets/run.sh
Executable file
31
web/assets/run.sh
Executable file
@@ -0,0 +1,31 @@
|
||||
#! /bin/bash
|
||||
set -e
|
||||
|
||||
# Check if the database is available yet. Do not start the container before the
|
||||
# postgresql boots up.
|
||||
until psql $DATABASE_URL -c '\l'; do
|
||||
>&2 echo "Postgres is unavailable - sleeping"
|
||||
sleep 1
|
||||
done
|
||||
|
||||
>&2 echo "Postgres is up - continuing"
|
||||
|
||||
# Check if the settings file is available and can be imported.
|
||||
|
||||
|
||||
# Check if we are in the correct directory before running commands.
|
||||
if [[ ! $(pwd) == '/opt/mailman-web' ]]; then
|
||||
echo "Running in the wrong directory...switching to /opt/mailman-web"
|
||||
cd /opt/mailman-web
|
||||
fi
|
||||
|
||||
|
||||
# Collect static for the django installation.
|
||||
python manage.py collectstatic --noinput
|
||||
|
||||
# Migrate all the data to the database if this is a new installation, otherwise
|
||||
# this command will upgrade the database.
|
||||
python manage.py migrate
|
||||
|
||||
# Run the web server.
|
||||
uwsgi --http-auto-chunked --http-keepalive
|
||||
Reference in New Issue
Block a user