summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2022-03-17 11:34:55 +0100
committerFabian Mastenbroek <mail.fabianm@gmail.com>2022-04-04 12:51:40 +0200
commit77d7ffd9a7a33f08109a2db8a35e4094b2761c51 (patch)
treebaf1030bd12f4853984e931ce868e611085c8db7
parent239990cb16f13cb307a94abccdd688bec2865221 (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--.dockerignore6
-rw-r--r--docker-compose.override.yml29
-rw-r--r--docker-compose.prod.yml2
-rw-r--r--docker-compose.yml52
-rw-r--r--opendc-web/opendc-web-api/Dockerfile17
-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