diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index 972e64bc0..dd85a454a 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -20,11 +20,14 @@ jobs: - name: Install the project run: uv sync --all-extras --dev + - name: Clean volumes + run: docker volume rm clowder2_postgres_data || true + - name: Start env run: docker compose -f ../docker-compose.dev.yml up -d # wait for docker containers to come up before running tests - - name: Sleep for 60 seconds + - name: Sleep for 60s seconds run: sleep 60s shell: bash diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index e396d5f35..a965c1257 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -63,19 +63,26 @@ services: - minio3 - minio4 - postgres: - image: postgres:16 + postgres-keycloak: + image: postgres:18.0 networks: - clowder2 + ports: + - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data environment: POSTGRES_DB: keycloak_dev POSTGRES_USER: keycloak POSTGRES_PASSWORD: password + healthcheck: + test: [ "CMD-SHELL", "pg_isready -U keycloak -d keycloak" ] + interval: 10s + timeout: 5s + retries: 5 keycloak: - image: quay.io/keycloak/keycloak:20.0 + image: quay.io/keycloak/keycloak:26.4.0 volumes: - ./scripts/keycloak/clowder-realm-dev.json:/opt/keycloak/data/import/realm.json:ro - ./scripts/keycloak/clowder-theme/:/opt/keycloak/themes/clowder-theme/:ro @@ -83,20 +90,27 @@ services: - clowder2 command: - start-dev - - --http-relative-path /keycloak +# - --http-enabled=true +# - --hostname=localhost +# - --hostname-strict=false +## - --hostname-strict-https=false +## - --https-port=0 +## - --http-port=8080 + - --http-relative-path=/keycloak - --import-realm environment: KEYCLOAK_ADMIN: admin KEYCLOAK_ADMIN_PASSWORD: admin KC_DB: postgres - KC_DB_URL_HOST: postgres + KC_DB_URL_HOST: postgres-keycloak KC_DB_URL_DATABASE: keycloak_dev KC_DB_USERNAME: keycloak KC_DB_PASSWORD: password ports: - - 8080:8080 + - "8080:8080" depends_on: - - postgres + postgres-keycloak: + condition: service_healthy maildev: image: maildev/maildev diff --git a/docker-compose.extractors.yml b/docker-compose.extractors.yml index 8795c2c63..8451d2b1c 100644 --- a/docker-compose.extractors.yml +++ b/docker-compose.extractors.yml @@ -82,3 +82,4 @@ services: networks: clowder2: + external: true diff --git a/docker-compose.yml b/docker-compose.yml index 2acf997b7..7fcafb4ab 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -17,12 +17,12 @@ x-minio-common: &minio-common services: traefik: - image: traefik:v2.5 + image: traefik:v3.6 restart: unless-stopped command: - - --api.insecure=true - - --providers.docker - # - --entryPoints.web.address=:80 + - "--api.insecure=true" + - "--providers.docker=true" + - "--entrypoints.web.address=:80" ports: # The HTTP port - "80:80" diff --git a/scripts/keycloak/clowder-realm-dev.json b/scripts/keycloak/clowder-realm-dev.json index 3d0980a9e..44e9b1a99 100644 --- a/scripts/keycloak/clowder-realm-dev.json +++ b/scripts/keycloak/clowder-realm-dev.json @@ -26,7 +26,7 @@ "oauth2DeviceCodeLifespan": 600, "oauth2DevicePollingInterval": 5, "enabled": true, - "sslRequired": "external", + "sslRequired": "NONE", "registrationAllowed": true, "registrationEmailAsUsername": true, "rememberMe": false,