From: Stephen Finucane Date: Sat, 6 Jun 2026 12:04:43 +0000 (+0100) Subject: Fix compat with latest patchwork/pyenv image X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=3f3812e4007fea8fc6260da8b6680470c35ff46b;p=thirdparty%2Fpatchwork.git Fix compat with latest patchwork/pyenv image We switched to the Ubuntu 24.04 base image some time back. This includes an ubuntu user that conflicts with the patchwork user we were creating. Simplify this by using the ubuntu user instead. Signed-off-by: Stephen Finucane --- diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 4af0f709..9d750d13 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -73,6 +73,8 @@ jobs: --health-interval 10s --health-timeout 5s --health-retries 5 + --gtid-mode=OFF + --enforce-gtid-consistency=OFF steps: - name: Checkout source code uses: actions/checkout@v6 @@ -149,7 +151,7 @@ jobs: cache: 'pip' - name: Build docker-compose service run: | - docker compose build --build-arg UID=$(id -u) --build-arg GID=$(id -g) + docker compose build - name: Test createsuperuser/changepassword run: | docker compose run -T --rm web \ diff --git a/docker-compose-pg.yml b/docker-compose-pg.yml index a88daf07..e625a364 100644 --- a/docker-compose-pg.yml +++ b/docker-compose-pg.yml @@ -13,18 +13,13 @@ services: build: context: . dockerfile: ./tools/docker/Dockerfile - args: - - UID - - GID depends_on: - db volumes: - - .:/home/patchwork/patchwork/ + - .:/home/ubuntu/patchwork/ ports: - "8000:8000" environment: - - UID - - GID - DATABASE_TYPE=postgres - DATABASE_HOST=db - DATABASE_PORT=5432 diff --git a/docker-compose-sqlite3.yml b/docker-compose-sqlite3.yml index 900cb71f..0603b187 100644 --- a/docker-compose-sqlite3.yml +++ b/docker-compose-sqlite3.yml @@ -4,16 +4,11 @@ services: build: context: . dockerfile: ./tools/docker/Dockerfile - args: - - UID - - GID command: python3 manage.py runserver 0.0.0.0:8000 volumes: - - .:/home/patchwork/patchwork/ + - .:/home/ubuntu/patchwork/ ports: - "8000:8000" environment: - - UID - - GID - DATABASE_TYPE=sqlite3 - - DATABASE_NAME=/home/patchwork/patchwork/tools/docker/db/db.sqlite3 + - DATABASE_NAME=/home/ubuntu/patchwork/tools/docker/db/db.sqlite3 diff --git a/docker-compose.yml b/docker-compose.yml index 878d3185..78d80f56 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,6 +2,7 @@ services: db: image: mysql:9.7 + command: --gtid-mode=OFF --enforce-gtid-consistency=OFF volumes: - ./tools/docker/db/data:/var/lib/mysql environment: @@ -18,18 +19,13 @@ services: build: context: . dockerfile: ./tools/docker/Dockerfile - args: - - UID - - GID depends_on: - db volumes: - - .:/home/patchwork/patchwork/ + - .:/home/ubuntu/patchwork/ ports: - "8000:8000" environment: - - UID - - GID # skip DATABASE_TYPE explicitly as mysql should be the default type. - DATABASE_HOST=db - DATABASE_PORT=3306 diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile index 6d942492..550171c7 100644 --- a/tools/docker/Dockerfile +++ b/tools/docker/Dockerfile @@ -1,16 +1,11 @@ FROM ghcr.io/getpatchwork/pyenv:latest -ARG UID=1000 -ARG GID=1000 - ARG TZ="Australia/Canberra" ENV DEBIAN_FRONTEND noninteractive ENV PYTHONUNBUFFERED 1 -ENV PROJECT_HOME /home/patchwork/patchwork +ENV PROJECT_HOME /home/ubuntu/patchwork ENV DJANGO_SETTINGS_MODULE patchwork.settings.dev -RUN groupadd -o --gid=$GID patchwork && \ - useradd --uid=$UID --gid=$GID --create-home patchwork RUN rm -f /etc/localtime; ln -s /usr/share/zoneinfo/$TZ /etc/localtime RUN eval "$(pyenv init -)" @@ -37,5 +32,5 @@ RUN pip install -r /opt/requirements-dev.txt 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 +USER ubuntu +WORKDIR /home/ubuntu/patchwork diff --git a/tools/docker/entrypoint.sh b/tools/docker/entrypoint.sh index c78c0581..f141b723 100755 --- a/tools/docker/entrypoint.sh +++ b/tools/docker/entrypoint.sh @@ -40,13 +40,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 ~/patchwork/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:/home/ubuntu/patchwork EOF exit 1 fi