From 3f7725e1d68576930573dc65f67a865b4eeb25b0 Mon Sep 17 00:00:00 2001 From: HTWKalender Team Date: Tue, 16 Jul 2024 09:48:57 -0400 Subject: [PATCH 1/2] Revert "add poseidon to docker compose" This reverts commit eead6e891454897d5a4cb92b6ae2140185452b96. --- docker-compose.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 277b2ceb..a7b4d910 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -49,14 +49,6 @@ services: - app restart: always - poseidon: - ports: - - "7200:7200" - network_mode: host - volumes: - - ./configuration.yaml:/go/src/app/configuration.yaml - restart: unless-stopped - volumes: db_data: config: -- 2.49.0 From 3895537f4fe2da7733ba5deaf1316cdfb0e2710b Mon Sep 17 00:00:00 2001 From: HTWKalender Team Date: Tue, 16 Jul 2024 14:54:56 -0400 Subject: [PATCH 2/2] concise names for docker containers and links --- config/code_ocean.yml.docker | 9 ++++++++- config/database.yml.docker | 2 +- docker-compose.yml | 9 ++++----- lib/runner/strategy/poseidon.rb | 1 + nginx/default.conf | 11 ++++++++++- 5 files changed, 24 insertions(+), 8 deletions(-) diff --git a/config/code_ocean.yml.docker b/config/code_ocean.yml.docker index 3da08cec..0fddef60 100644 --- a/config/code_ocean.yml.docker +++ b/config/code_ocean.yml.docker @@ -37,6 +37,7 @@ default: &default runner_management: # When enabled, CodeOcean delegates the handling and management of (containerized) runners # to a dedicated runner management. Otherwise, code executions are performed locally using + #<% if ENV['POSEIDON_HOST'] != '' -%> # Docker and without pre-warming support (one container per execution). enabled: true # The strategy to use. Possible values are: poseidon, docker_container_pool @@ -44,7 +45,13 @@ default: &default # The root URL of the runner management to use (include any API prefix if required) # If a hostname is specified and the target host is reachable via IPv6, the WebSocket # connection might not use the IPv6-to-IPv4 fallback but rather fail unexpectedly. - url: http://127.0.0.1:7200/api/v1 + url: http://poseidon:7200/api/v1 + #url: http://<%= ENV['POSEIDON_HOST'] %>/api/v1 + #<% else %> + #enabled: false + #strategy: poseidon + #url: http://poseidon.example.org/ + #<% end -%> # The root certificate authority to trust for TLS connections to the runner management (Poseidon only) # ca_file: /example/certificates/ca.crt # The authorization token for connections to the runner management (Poseidon only) diff --git a/config/database.yml.docker b/config/database.yml.docker index 89045161..cdaa3481 100644 --- a/config/database.yml.docker +++ b/config/database.yml.docker @@ -3,7 +3,7 @@ default: &default pool: 16 username: <%= ENV['POSTGRES_USER'] %> password: <%= ENV['POSTGRES_PASSWORD'] %> - host: db + host: codeocean-db development: <<: *default diff --git a/docker-compose.yml b/docker-compose.yml index a7b4d910..76b19095 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,5 @@ services: - db: + codeocean-db: image: postgres:16 volumes: - db_data:/var/lib/postgresql/data @@ -8,7 +8,7 @@ services: POSTGRES_PASSWORD: secure_password POSTGRES_DB: codeocean_production - app: + codeocean: build: context: . dockerfile: Dockerfile @@ -18,7 +18,7 @@ services: ports: - "7123:7000" depends_on: - - db + - codeocean-db - prometheus environment: POSTGRES_USER: codeocean_user @@ -45,8 +45,7 @@ services: - ./nginx/certs:/etc/nginx/certs ports: - "443:443" - depends_on: - - app + - "80:80" restart: always volumes: diff --git a/lib/runner/strategy/poseidon.rb b/lib/runner/strategy/poseidon.rb index c88fc1b0..ee41b798 100644 --- a/lib/runner/strategy/poseidon.rb +++ b/lib/runner/strategy/poseidon.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true +require 'resolv-replace' class Runner::Strategy::Poseidon < Runner::Strategy ERRORS = %w[NOMAD_UNREACHABLE NOMAD_OVERLOAD NOMAD_INTERNAL_SERVER_ERROR UNKNOWN].freeze diff --git a/nginx/default.conf b/nginx/default.conf index ee7bfa82..b3ad72f0 100644 --- a/nginx/default.conf +++ b/nginx/default.conf @@ -6,10 +6,19 @@ server { ssl_certificate_key /etc/nginx/certs/codeocean.key; location / { - proxy_pass http://app:7000; # Ersetzen Sie 'frontend' durch den Namen Ihres Frontend-Services und '80' durch den Port, auf dem Ihr Frontend läuft + proxy_pass http://codeocean:7000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } + +server { + listen 80; + server_name localhost; + + location / { + proxy_pass http://codeocean:7000; + } +} -- 2.49.0