From 4b077dfa371858306c976fb183e660826ca0df7a Mon Sep 17 00:00:00 2001 From: Kevin Chung Date: Fri, 3 Mar 2017 01:37:46 -0500 Subject: [PATCH] Working on #187 Improvements to Dockerfile. --- Dockerfile | 8 ++++++-- docker-entrypoint.sh | 15 +++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100755 docker-entrypoint.sh diff --git a/Dockerfile b/Dockerfile index 7d7e7e13..cf39ae45 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ FROM ubuntu:latest RUN apt-get update -y RUN apt-get upgrade -y -RUN apt-get install build-essential python-dev python-pip libffi-dev -y +RUN apt-get install build-essential python-dev python-pip libffi-dev mysql-client -y VOLUME ["/opt/CTFd"] @@ -12,5 +12,9 @@ WORKDIR /opt/CTFd RUN pip install -r requirements.txt RUN pip install pymysql -CMD ["gunicorn", "--bind", "0.0.0.0:8000", "-w", "4", "CTFd:create_app()", "--access-logfile", "/opt/CTFd/CTFd/logs/access.log", "--error-logfile", "/opt/CTFd/CTFd/logs/error.log"] +RUN chmod +x /opt/CTFd/docker-entrypoint.sh + EXPOSE 8000 + +ENTRYPOINT ["/opt/CTFd/docker-entrypoint.sh"] +CMD ["gunicorn", "--bind", "0.0.0.0:8000", "-w", "4", "CTFd:create_app()", "--access-logfile", "/opt/CTFd/CTFd/logs/access.log", "--error-logfile", "/opt/CTFd/CTFd/logs/error.log"] \ No newline at end of file diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100755 index 00000000..30e2c835 --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +# http://stackoverflow.com/questions/25503412/how-do-i-know-when-my-docker-mysql-container-is-up-and-mysql-is-ready-for-taking#29793382 +echo "Waiting on MySQL" +while ! mysqladmin ping -h db --silent; do + # Show some progress + echo -n '.'; + sleep 1; +done +echo "Ready" +# Give it another second. +sleep 1; + +echo "Starting CTFd" +gunicorn --bind 0.0.0.0:8000 -w 4 'CTFd:create_app()' --access-logfile '/opt/CTFd/CTFd/logs/access.log' --error-logfile '/opt/CTFd/CTFd/logs/error.log' \ No newline at end of file