[PATCH 1/2] tools: add arguments for home directory and tag in a dockerfile
Herakliusz Lipiec
hero24 at icloud.com
Wed Oct 30 06:09:10 AEDT 2024
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 <hero24 at 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)
More information about the Patchwork
mailing list