From b530f7a6cfe740a521040d93e86b99eaecc73f89 Mon Sep 17 00:00:00 2001 From: Sergey Stepanov Date: Tue, 7 May 2024 15:54:42 +0300 Subject: [PATCH 1/2] Add curl to worker containers --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index abae4a678..837b41900 100644 --- a/Dockerfile +++ b/Dockerfile @@ -76,6 +76,7 @@ COPY --from=build_coordinator /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ FROM ubuntu:lunar AS worker RUN apt-get -q update && apt-get -q install --no-install-recommends -y \ + curl \ libx11-6 \ libxext6 \ && apt-get autoremove \ From a4f0dbbca8d819649b2fb68d8a2e7db7a2dd2a8f Mon Sep 17 00:00:00 2001 From: Sergey Stepanov Date: Tue, 7 May 2024 19:11:55 +0300 Subject: [PATCH 2/2] Add a health check in cloudretro.io --- .../workflows/cd/cloudretro.io/config.yaml | 2 +- .github/workflows/cd/docker-compose.yml | 76 +++++++++++++------ 2 files changed, 53 insertions(+), 25 deletions(-) diff --git a/.github/workflows/cd/cloudretro.io/config.yaml b/.github/workflows/cd/cloudretro.io/config.yaml index fa8b21a59..64eb78072 100644 --- a/.github/workflows/cd/cloudretro.io/config.yaml +++ b/.github/workflows/cd/cloudretro.io/config.yaml @@ -21,7 +21,7 @@ worker: https: true tls: address: :444 - domain: cloudretro.io +# domain: cloudretro.io emulator: libretro: diff --git a/.github/workflows/cd/docker-compose.yml b/.github/workflows/cd/docker-compose.yml index 1517fce30..11380d5c7 100644 --- a/.github/workflows/cd/docker-compose.yml +++ b/.github/workflows/cd/docker-compose.yml @@ -1,7 +1,4 @@ -version: "3.9" - -x-params: - &default-params +x-params: &default-params image: ghcr.io/giongto35/cloud-game/cloud-game:${IMAGE_TAG:-master} network_mode: "host" privileged: true @@ -10,6 +7,33 @@ x-params: - seccomp:unconfined logging: driver: "journald" +x-worker: &worker + depends_on: + - coordinator +# deploy: +# mode: replicated +# replicas: 4 + environment: + - DISPLAY=:99 + - MESA_GL_VERSION_OVERRIDE=4.5 + - CLOUD_GAME_WORKER_LIBRARY_BASEPATH=/usr/local/share/cloud-game/assets/games + - CLOUD_GAME_EMULATOR_LIBRETRO_CORES_PATHS_LIBS=/usr/local/share/cloud-game/assets/cores + - CLOUD_GAME_WORKER_SERVER_TLS_DOMAIN=cloudretro.io + command: ./worker + volumes: + - ${APP_DIR:-/cloud-game}/cache:/usr/local/share/cloud-game/assets/cache + - ${APP_DIR:-/cloud-game}/cores:/usr/local/share/cloud-game/assets/cores + - ${APP_DIR:-/cloud-game}/games:/usr/local/share/cloud-game/assets/games + - ${APP_DIR:-/cloud-game}/libretro:/usr/local/share/cloud-game/libretro + - ${APP_DIR:-/cloud-game}/home:/root/.cr + - x11:/tmp/.X11-unix + healthcheck: + test: curl -f https://cloudretro.io/echo || exit 1 + interval: 2m + timeout: 10s + retries: 3 + start_period: 40s + start_interval: 5s services: @@ -23,32 +47,36 @@ services: - ${APP_DIR:-/cloud-game}/games:/usr/local/share/cloud-game/assets/games - ${APP_DIR:-/cloud-game}/home:/root/.cr - worker: - <<: *default-params - depends_on: - - coordinator - deploy: - mode: replicated - replicas: 4 + worker01: + <<: [ *default-params, *worker ] environment: - - DISPLAY=:99 - - MESA_GL_VERSION_OVERRIDE=4.5 - - CLOUD_GAME_WORKER_LIBRARY_BASEPATH=/usr/local/share/cloud-game/assets/games - - CLOUD_GAME_EMULATOR_LIBRETRO_CORES_PATHS_LIBS=/usr/local/share/cloud-game/assets/cores - command: ./worker - volumes: - - ${APP_DIR:-/cloud-game}/cache:/usr/local/share/cloud-game/assets/cache - - ${APP_DIR:-/cloud-game}/cores:/usr/local/share/cloud-game/assets/cores - - ${APP_DIR:-/cloud-game}/games:/usr/local/share/cloud-game/assets/games - - ${APP_DIR:-/cloud-game}/libretro:/usr/local/share/cloud-game/libretro - - ${APP_DIR:-/cloud-game}/home:/root/.cr - - x11:/tmp/.X11-unix + - CLOUD_GAME_WORKER_SERVER_TLS_ADDRESS=:444 + healthcheck: + test: curl -f https://cloudretro.io:444/echo || exit 1 + worker02: + <<: [ *default-params, *worker ] + environment: + - CLOUD_GAME_WORKER_SERVER_TLS_ADDRESS=:445 + healthcheck: + test: curl -f https://cloudretro.io:445/echo || exit 1 + worker03: + <<: [ *default-params, *worker ] + environment: + - CLOUD_GAME_WORKER_SERVER_TLS_ADDRESS=:446 + healthcheck: + test: curl -f https://cloudretro.io:446/echo || exit 1 + worker04: + <<: [ *default-params, *worker ] + environment: + - CLOUD_GAME_WORKER_SERVER_TLS_ADDRESS=:447 + healthcheck: + test: curl -f https://cloudretro.io:447/echo || exit 1 xvfb: image: kcollins/xvfb:latest volumes: - x11:/tmp/.X11-unix - command: [":99", "-screen", "0", "320x240x16" ] + command: [ ":99", "-screen", "0", "320x240x16" ] volumes: x11: