Currently to change the home directory for docker image it has to be changed in many places. Dockerfile allows for use of arguments and env variables, by using those now it can be changed by passing arguments to docker-compose. Also adding TAG argument for the same reason.
Signed-off-by: Herakliusz Lipiec <her...@icloud.com> --- docker-compose-pg.yml | 2 ++ docker-compose-sqlite3.yml | 2 ++ docker-compose.yml | 2 ++ tools/docker/Dockerfile | 10 ++++++---- tools/docker/entrypoint.sh | 9 +++++---- 5 files changed, 17 insertions(+), 8 deletions(-) diff --git a/docker-compose-pg.yml b/docker-compose-pg.yml index 44bc3ec..a9593bd 100644 --- a/docker-compose-pg.yml +++ b/docker-compose-pg.yml @@ -15,6 +15,8 @@ services: args: - UID - GID + - TAG + - PATCHWORK_DIR depends_on: - db volumes: diff --git a/docker-compose-sqlite3.yml b/docker-compose-sqlite3.yml index 900cb71..d26e74b 100644 --- a/docker-compose-sqlite3.yml +++ b/docker-compose-sqlite3.yml @@ -7,6 +7,8 @@ services: args: - UID - GID + - TAG + - PATCHWORK_DIR command: python3 manage.py runserver 0.0.0.0:8000 volumes: - .:/home/patchwork/patchwork/ diff --git a/docker-compose.yml b/docker-compose.yml index 73f080a..f6a59b2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -20,6 +20,8 @@ services: args: - UID - GID + - TAG + - PATCHWORK_DIR depends_on: - db volumes: diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile index 0a55b54..4a18c44 100644 --- a/tools/docker/Dockerfile +++ b/tools/docker/Dockerfile @@ -1,12 +1,14 @@ -FROM ghcr.io/getpatchwork/pyenv:latest +ARG TAG="latest" +FROM ghcr.io/getpatchwork/pyenv:${TAG} ARG UID=1000 ARG GID=1000 - +ARG PATCHWORK_DIR="/home/patchwork/patchwork" ARG TZ="Australia/Canberra" + ENV DEBIAN_FRONTEND noninteractive ENV PYTHONUNBUFFERED 1 -ENV PROJECT_HOME /home/patchwork/patchwork +ENV PROJECT_HOME ${PATCHWORK_DIR} ENV DJANGO_SETTINGS_MODULE patchwork.settings.dev RUN groupadd --gid=$GID patchwork && \ @@ -38,4 +40,4 @@ COPY tools/docker/entrypoint.sh /usr/local/bin/entrypoint.sh ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] CMD ["python3", "manage.py", "runserver", "0.0.0.0:8000"] USER patchwork -WORKDIR /home/patchwork/patchwork +WORKDIR $PATCHWORK_DIR diff --git a/tools/docker/entrypoint.sh b/tools/docker/entrypoint.sh index c78c058..5a4085d 100755 --- a/tools/docker/entrypoint.sh +++ b/tools/docker/entrypoint.sh @@ -5,6 +5,7 @@ export DATABASE_HOST=${DATABASE_HOST:-} export DATABASE_PORT=${DATABASE_PORT:-} export DATABASE_USER=${DATABASE_USER:-patchwork} export DATABASE_PASSWORD=${DATABASE_PASSWORD:-password} +export PROJECT_HOME=${PROJECT_HOME:-/home/patchwork/patchwork/} case "${DATABASE_TYPE:-}" in postgres) @@ -40,13 +41,13 @@ test_database() { # check if patchwork is mounted. Checking if we exist is a # very good start! -if [ ! -f ~patchwork/patchwork/tools/docker/entrypoint.sh ]; then +if [ ! -f $PROJECT_HOME/tools/docker/entrypoint.sh ]; then cat << EOF The patchwork directory doesn't seem to be mounted! Are you using docker-compose? If so, you may need to create an SELinux rule. Refer to the development installation documentation for more information. -If not, you need -v PATH_TO_PATCHWORK:/home/patchwork/patchwork +If not, you need -v PATH_TO_PATCHWORK:$PROJECT_HOME EOF exit 1 fi @@ -55,7 +56,7 @@ set +e # check if we need to rebuild because requirements changed for x in /opt/requirements-*.txt; do - if ! cmp $x ~/patchwork/$(basename $x); then + if ! cmp $x $PROJECT_HOME/$(basename $x); then cat << EOF A requirements file has changed. @@ -63,7 +64,7 @@ You may need to rebuild the patchwork image: docker-compose build web EOF - diff -u $x ~/patchwork/$(basename $x) + diff -u $x $PROJECT_HOME/$(basename $x) fi done -- 2.39.3 (Apple Git-146) _______________________________________________ Patchwork mailing list Patchwork@lists.ozlabs.org https://lists.ozlabs.org/listinfo/patchwork