diff options
| author | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2022-03-17 11:34:55 +0100 |
|---|---|---|
| committer | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2022-04-04 12:51:40 +0200 |
| commit | 77d7ffd9a7a33f08109a2db8a35e4094b2761c51 (patch) | |
| tree | baf1030bd12f4853984e931ce868e611085c8db7 | |
| parent | 239990cb16f13cb307a94abccdd688bec2865221 (diff) | |
refactor(web): Update Docker deployment for new web API
This change updates the Docker deployment configuration for the new web
API implemented in Kotlin. The new API migrates to Postgres.
Furthermore, with this change, we move the Dockerfiles to their
corresponding module.
| -rw-r--r-- | .dockerignore | 6 | ||||
| -rw-r--r-- | docker-compose.override.yml | 29 | ||||
| -rw-r--r-- | docker-compose.prod.yml | 2 | ||||
| -rw-r--r-- | docker-compose.yml | 52 | ||||
| -rw-r--r-- | opendc-web/opendc-web-api/Dockerfile | 17 | ||||
| -rw-r--r-- | opendc-web/opendc-web-runner/Dockerfile (renamed from Dockerfile) | 0 |
6 files changed, 60 insertions, 46 deletions
diff --git a/.dockerignore b/.dockerignore index e4d96f71..bbc8efcc 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,7 +1,5 @@ -Dockerfile - .git - +.env .idea/ **/out *.iml @@ -10,3 +8,5 @@ Dockerfile .gradle **/build **/node_modules + +**/Dockerfile diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 5d104557..314adcb1 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -10,29 +10,38 @@ services: NEXT_PUBLIC_API_BASE_URL: http://localhost:8081 api: - build: opendc-web/opendc-web-api + build: + context: . + dockerfile: opendc-web/opendc-web-api/Dockerfile ports: - "8081:80" environment: SENTRY_ENVIRONMENT: "development" - simulator: - build: . + runner: + build: + context: . + dockerfile: opendc-web/opendc-web-runner/Dockerfile environment: SENTRY_ENVIRONMENT: "development" - mongo: + postgres: ports: - - "27017:27017" + - "5432:5432" - mongo-express: - image: mongo-express + pgadmin: + image: dpage/pgadmin4 restart: on-failure networks: - backend depends_on: - - mongo + - postgres ports: - - "8082:8081" + - "5050:80" environment: - ME_CONFIG_MONGODB_URL: "mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017/" + PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-pgadmin4@pgadmin.org} + PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin} + PGADMIN_CONFIG_SERVER_MODE: 'False' + +volumes: + pgadmin: diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index c4f43298..1206ff9c 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -14,6 +14,6 @@ services: environment: SENTRY_ENVIRONMENT: "production" - simulator: + runner: environment: SENTRY_ENVIRONMENT: "production" diff --git a/docker-compose.yml b/docker-compose.yml index 52209a5b..faaecc03 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,23 +19,16 @@ services: networks: - backend depends_on: - - mongo + - postgres environment: - - MONGO_INITDB_ROOT_USERNAME - - MONGO_INITDB_ROOT_PASSWORD - - MONGO_INITDB_DATABASE - - OPENDC_DB - - OPENDC_DB_USERNAME - - OPENDC_DB_PASSWORD - - OPENDC_DB_HOST=mongo - - OPENDC_FLASK_SECRET - - AUTH0_DOMAIN=${OPENDC_AUTH0_DOMAIN} - - AUTH0_AUDIENCE=${OPENDC_AUTH0_AUDIENCE} - - AUTH0_DOCS_CLIENT_ID=${OPENDC_AUTH0_DOCS_CLIENT_ID} - - SENTRY_DSN=${OPENDC_API_SENTRY_DSN-} - - SENTRY_ENVIRONMENT + OPENDC_DB_USERNAME: ${OPENDC_DB_USERNAME:?No database username specified} + OPENDC_DB_PASSWORD: ${OPENDC_DB_PASSWORD:?No database password specified} + OPENDC_DB_URL: jdbc:postgresql://postgres:5432/opendc + OPENDC_AUTH0_DOMAIN: ${OPENDC_AUTH0_DOMAIN:?No Auth0 domain specified} + OPENDC_AUTH0_AUDIENCE: ${OPENDC_AUTH0_AUDIENCE:?No Auth0 audience specified} + SENTRY_DSN: ${OPENDC_API_SENTRY_DSN-} - simulator: + runner: image: atlargeresearch/opendc:v2.1 restart: on-failure networks: @@ -47,31 +40,26 @@ services: source: ./traces target: /opt/opendc/traces environment: - - OPENDC_API_URL=${OPENDC_API_BASE_URL} - - AUTH0_DOMAIN=${OPENDC_AUTH0_DOMAIN} - - AUTH0_AUDIENCE=${OPENDC_AUTH0_AUDIENCE} - - AUTH0_CLIENT_ID=${OPENDC_AUTH0_CLIENT_ID_RUNNER} - - AUTH0_CLIENT_SECRET=${OPENDC_AUTH0_CLIENT_SECRET_RUNNER} - - SENTRY_DSN=${OPENDC_SIMULATOR_SENTRY_DSN-} - - SENTRY_ENVIRONMENT + OPENDC_API_URL: ${OPENDC_API_BASE_URL:-http://web:8080} + AUTH0_DOMAIN: ${OPENDC_AUTH0_DOMAIN:?No Auth0 domain specified} + AUTH0_AUDIENCE: ${OPENDC_AUTH0_AUDIENCE:?No Auth0 audience specified} + AUTH0_CLIENT_ID: ${OPENDC_AUTH0_CLIENT_ID_RUNNER:?No client id for runner} + AUTH0_CLIENT_SECRET: ${OPENDC_AUTH0_CLIENT_SECRET_RUNNER:?No client secret for runner} + SENTRY_DSN: ${OPENDC_SIMULATOR_SENTRY_DSN-} - mongo: - build: database + postgres: + image: postgres restart: on-failure environment: - - MONGO_INITDB_ROOT_USERNAME - - MONGO_INITDB_ROOT_PASSWORD - - MONGO_INITDB_DATABASE - - OPENDC_DB - - OPENDC_DB_USERNAME - - OPENDC_DB_PASSWORD + POSTGRES_USER: ${OPENDC_DB_USERNAME} + POSTGRES_PASSWORD: ${OPENDC_DB_PASSWORD} networks: - backend volumes: - - mongo-volume:/data/db + - postgres:/var/lib/postgresql/data volumes: - mongo-volume: + postgres: networks: backend: {} diff --git a/opendc-web/opendc-web-api/Dockerfile b/opendc-web/opendc-web-api/Dockerfile new file mode 100644 index 00000000..ff300170 --- /dev/null +++ b/opendc-web/opendc-web-api/Dockerfile @@ -0,0 +1,17 @@ +FROM openjdk:17-slim +MAINTAINER OpenDC Maintainers <opendc@atlarge-research.com> + +# Obtain (cache) Gradle wrapper +COPY gradlew /app/ +COPY gradle /app/gradle +WORKDIR /app +RUN ./gradlew --version + +# Build project +COPY ./ /app/ +RUN ./gradlew --no-daemon :opendc-web:opendc-web-api:build + +FROM openjdk:17-slim +COPY --from=0 /app/opendc-web/opendc-web-api/build/quarkus-app /opt/opendc +WORKDIR /opt/opendc +CMD java -jar quarkus-run.jar diff --git a/Dockerfile b/opendc-web/opendc-web-runner/Dockerfile index 771ed2ed..771ed2ed 100644 --- a/Dockerfile +++ b/opendc-web/opendc-web-runner/Dockerfile |
