From 0a039cbb29eb8bb33178b73f001a13ec73b3601e Mon Sep 17 00:00:00 2001 From: "D. Scott Boggs" Date: Sun, 11 May 2025 08:31:59 -0400 Subject: [PATCH 1/2] basic working demo --- .dockerignore | 5 +++++ .gitignore | 3 +++ docker-compose.yaml | 54 +++++++++++++++++++++++++++++++++++++++++++++ rabbitmq_plugins | 1 + 4 files changed, 63 insertions(+) create mode 100644 .dockerignore create mode 100644 .gitignore create mode 100644 docker-compose.yaml create mode 100644 rabbitmq_plugins diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..6a5a7e0 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +docker-compose.yml +Dockerfile +.git +LICENSE +README.md \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dd0f731 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +**/.env* +**/*.secret +**/*.pw diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..9d0acfa --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,54 @@ +version: "3.9" +services: + koha: + # image: teogramm/koha:24.11 + build: . + ports: + - 8080:8080 + - 8081:8081 + networks: + - koha + cap_add: + - DAC_READ_SEARCH + - SYS_NICE + environment: + MYSQL_SERVER: db + MYSQL_USER: koha + MYSQL_PASSWORD: example + DB_NAME: koha + MEMCACHED_SERVERS: memcached:11211 + MB_HOST: rabbitmq + depends_on: + - db + - rabbitmq + - memcached + + rabbitmq: + image: docker.io/rabbitmq:3 + volumes: + - ./rabbitmq_plugins:/etc/rabbitmq/enabled_plugins + networks: + - koha + + db: + image: docker.io/mariadb:11 + volumes: + - mariadb-koha:/var/lib/mysql + environment: + MARIADB_RANDOM_ROOT_PASSWORD: true% + MARIADB_DATABASE: koha + MARIADB_USER: koha + MARIADB_PASSWORD: example + networks: + - koha + + memcached: + image: docker.io/memcached + networks: + - koha + +volumes: + mariadb-koha: + +networks: + koha: diff --git a/rabbitmq_plugins b/rabbitmq_plugins new file mode 100644 index 0000000..17b6ee0 --- /dev/null +++ b/rabbitmq_plugins @@ -0,0 +1 @@ +[rabbitmq_stomp]. From 38a3f2566bf35da100fcbc26671a0c49d820460c Mon Sep 17 00:00:00 2001 From: "D. Scott Boggs" Date: Sun, 11 May 2025 09:26:31 -0400 Subject: [PATCH 2/2] set up production configs --- docker-compose.yaml | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 9d0acfa..1bb7d04 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,48 +1,56 @@ -version: "3.9" services: koha: # image: teogramm/koha:24.11 build: . - ports: - - 8080:8080 - - 8081:8081 networks: - koha + - public # network which connects to the reverse proxy cap_add: - DAC_READ_SEARCH - SYS_NICE + env_file: ./.env.prod environment: - MYSQL_SERVER: db + MYSQL_SERVER: koha-db MYSQL_USER: koha - MYSQL_PASSWORD: example + # MYSQL_PASSWORD: # set in .env.prod DB_NAME: koha - MEMCACHED_SERVERS: memcached:11211 - MB_HOST: rabbitmq + MEMCACHED_SERVERS: koha-memcached:11211 + MB_HOST: koha-rabbitmq depends_on: - db - rabbitmq - memcached + labels: + traefik.http.routers.koha-opac.rule: Host(`koha.techwork.zone`) + traefik.http.routers.koha-opac.tls.certresolver: letsencrypt_standalone + traefik.http.routers.koha-opac.service: koha-opac-service + traefik.http.routers.koha-admin.rule: Host(`admin.koha.techwork.zone`) + traefik.http.routers.koha-admin.tls.certresolver: letsencrypt_standalone + traefik.http.routers.koha-admin.service: koha-admin-service + traefik.http.services.koha-opac-service.load-balancer.server.port: 8080 + traefik.http.services.koha-admin-service.load-balancer.server.port: 8081 - rabbitmq: + koha-rabbitmq: image: docker.io/rabbitmq:3 volumes: - ./rabbitmq_plugins:/etc/rabbitmq/enabled_plugins networks: - koha - db: + koha-db: image: docker.io/mariadb:11 volumes: - - mariadb-koha:/var/lib/mysql + - ./mounts/database:/var/lib/mysql + env_file: ./.env.prod environment: - MARIADB_RANDOM_ROOT_PASSWORD: true% + MARIADB_RANDOM_ROOT_PASSWORD: true MARIADB_DATABASE: koha MARIADB_USER: koha - MARIADB_PASSWORD: example + # MARIADB_PASSWORD: # set in .env.prod networks: - koha - memcached: + koha-memcached: image: docker.io/memcached networks: - koha @@ -52,3 +60,4 @@ volumes: networks: koha: + internal: true