From 1eb669ad5c0b95f79b1211af342e7217cdc6eb06 Mon Sep 17 00:00:00 2001 From: Nicholas Volker <45795784+nvolker@users.noreply.github.com> Date: Tue, 31 Mar 2026 15:09:31 +0200 Subject: [PATCH 1/2] Upgrade Ruby 2.6.3 to 3.4 and Gemstash 2.0.0 to 2.8.0 Ruby 2.6.3 has been EOL since March 2022 and Gemstash 2.8.0 now requires Ruby >= 3.1, making this a good time to modernize the stack. Key changes: - Ruby 2.6.3 -> 3.4 (via ruby:3.4-alpine) - Gemstash 2.0.0 -> 2.8.0 - pg 0.18.4 -> 1.6.3, mysql2 0.5.2 -> 0.5.7, puma 3.12.6 -> 7.2.0 - MySQL image 5.7.19 -> 8.0, PostgreSQL image 9.6.3 -> 16 - Add yaml-dev for psych gem native extension - Fix postgres volume mount path (/var/lib/mysql -> /var/lib/postgresql/data) - Remove deprecated compose version key and links directive Co-Authored-By: Claude Opus 4.6 (1M context) --- CHANGELOG.md | 14 ++ Dockerfile | 4 +- app/.ruby-version | 2 +- app/Gemfile | 8 +- app/Gemfile.lock | 252 +++++++++++++++++++++++++++++------- docker-compose.mysql.yml | 8 +- docker-compose.postgres.yml | 10 +- docker-compose.sqlite.yml | 7 +- 8 files changed, 236 insertions(+), 69 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 89ac7e3..e47efcf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## 2.0.0 + +* Upgrade Ruby from v2.6.3 to v3.4. +* Upgrade Gemstash from v2.0.0 to v2.8.0. +* Upgrade pg gem from v0.18.4 to v1.6.3. +* Upgrade mysql2 gem from v0.5.2 to v0.5.7. +* Upgrade puma from v3.12.6 to v7.2.0. +* Upgrade all transitive dependencies (activesupport 8.1, sinatra 4.2, rack 3.2, etc.). +* Upgrade MySQL image from v5.7.19 to v8.0. +* Upgrade PostgreSQL image from v9.6.3 to v16. +* Fix PostgreSQL volume mount path (was incorrectly set to /var/lib/mysql). +* Remove deprecated docker-compose version key. +* Remove deprecated links directive from compose files. + ## 1.4.1 * Bump puma from 3.12.1 to 3.12.6. diff --git a/Dockerfile b/Dockerfile index 13deee2..2f5431e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ruby:2.6.3-alpine +FROM ruby:3.4-alpine # Install system dependencies RUN apk --update add \ @@ -6,10 +6,10 @@ RUN apk --update add \ mariadb-dev \ postgresql-dev \ sqlite-dev \ + yaml-dev \ su-exec \ tini && \ gem update --system && \ - gem install bundler:1.17.2 && \ rm -rf /var/cache/apk/* # Create gemstash user diff --git a/app/.ruby-version b/app/.ruby-version index ec1cf33..2f4b607 100644 --- a/app/.ruby-version +++ b/app/.ruby-version @@ -1 +1 @@ -2.6.3 +3.4 diff --git a/app/Gemfile b/app/Gemfile index 1ce0dc3..b07c030 100644 --- a/app/Gemfile +++ b/app/Gemfile @@ -1,14 +1,14 @@ source 'https://rubygems.org' -ruby '2.6.3' +ruby '>= 3.4' # A simple, fast Mysql library for Ruby, binding to libmysql. -gem 'mysql2', '~> 0.5.2' +gem 'mysql2', '~> 0.5' # Pg is the Ruby interface to the PostgreSQL. -gem 'pg', '~> 0.18.4' +gem 'pg', '~> 1.5' # Gemstash acts as a local RubyGems server, caching copies of gems from # RubyGems.org automatically, and eventually letting you push your own private # gems as well. -gem 'gemstash', '~> 2.0' +gem 'gemstash', '~> 2.8' diff --git a/app/Gemfile.lock b/app/Gemfile.lock index 4423688..876416d 100644 --- a/app/Gemfile.lock +++ b/app/Gemfile.lock @@ -1,69 +1,227 @@ GEM remote: https://rubygems.org/ specs: - activesupport (5.2.4.4) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - concurrent-ruby (1.1.7) - dalli (2.7.10) - faraday (0.15.4) - multipart-post (>= 1.2, < 3) - faraday_middleware (0.13.1) - faraday (>= 0.7.4, < 1.0) - gemstash (2.0.0) - activesupport (>= 4.2, < 6) - dalli (~> 2.7) - faraday (~> 0.9) - faraday_middleware (~> 0.10) + activesupport (8.1.3) + base64 + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + json + logger (>= 1.4.2) + minitest (>= 5.1) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + uri (>= 0.13.1) + base64 (0.3.0) + bigdecimal (4.1.0) + concurrent-ruby (1.3.6) + connection_pool (3.0.2) + dalli (4.3.3) + logger + date (3.5.1) + drb (2.2.3) + faraday (1.10.5) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) + ruby2_keywords (>= 0.0.4) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.1) + faraday-excon (1.1.0) + faraday-httpclient (1.0.1) + faraday-multipart (1.2.0) + multipart-post (~> 2.0) + faraday-net_http (1.0.2) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.4) + faraday_middleware (1.2.1) + faraday (~> 1.0) + gemstash (2.8.0) + activesupport (>= 4.2, < 9) + dalli (>= 3.2.3, < 5) + faraday (>= 1, < 3) + faraday_middleware (~> 1.0) lru_redux (~> 1.1) - puma (~> 3.10) + psych (>= 3.2.1) + puma (>= 6.1, < 8.0) sequel (~> 5.0) server_health_check-rack (~> 0.1) - sinatra (>= 1.4, < 3.0) - sqlite3 (~> 1.3) - thor (~> 0.20) - i18n (1.8.5) + sinatra (>= 1.4, < 5.0) + sqlite3 (>= 1.3, < 3.0) + terminal-table (>= 3, < 5) + thor (~> 1.0) + i18n (1.14.8) concurrent-ruby (~> 1.0) + json (2.19.3) + logger (1.7.0) lru_redux (1.1.0) - minitest (5.14.2) - multipart-post (2.0.0) - mustermann (2.0.2) + minitest (6.0.2) + drb (~> 2.0) + prism (~> 1.5) + multipart-post (2.4.1) + mustermann (3.0.4) ruby2_keywords (~> 0.0.1) - mysql2 (0.5.2) - pg (0.18.4) - puma (3.12.6) - rack (2.2.6.4) - rack-protection (2.2.4) - rack + mysql2 (0.5.7) + bigdecimal + nio4r (2.7.5) + pg (1.6.3) + pg (1.6.3-aarch64-linux) + pg (1.6.3-aarch64-linux-musl) + pg (1.6.3-arm64-darwin) + pg (1.6.3-x86_64-darwin) + pg (1.6.3-x86_64-linux) + pg (1.6.3-x86_64-linux-musl) + prism (1.9.0) + psych (5.3.1) + date + stringio + puma (7.2.0) + nio4r (~> 2.0) + rack (3.2.5) + rack-protection (4.2.1) + base64 (>= 0.1.0) + logger (>= 1.6.0) + rack (>= 3.0.0, < 4) + rack-session (2.1.1) + base64 (>= 0.1.0) + rack (>= 3.0.0) ruby2_keywords (0.0.5) - sequel (5.19.0) + securerandom (0.4.1) + sequel (5.102.0) + bigdecimal server_health_check (1.0.2) server_health_check-rack (0.1.0) server_health_check (~> 1.0, >= 1.0.1) - sinatra (2.2.4) - mustermann (~> 2.0) - rack (~> 2.2) - rack-protection (= 2.2.4) + sinatra (4.2.1) + logger (>= 1.6.0) + mustermann (~> 3.0) + rack (>= 3.0.0, < 4) + rack-protection (= 4.2.1) + rack-session (>= 2.0.0, < 3) tilt (~> 2.0) - sqlite3 (1.4.1) - thor (0.20.3) - thread_safe (0.3.6) - tilt (2.1.0) - tzinfo (1.2.10) - thread_safe (~> 0.1) + sqlite3 (2.9.2-aarch64-linux-gnu) + sqlite3 (2.9.2-aarch64-linux-musl) + sqlite3 (2.9.2-arm-linux-gnu) + sqlite3 (2.9.2-arm-linux-musl) + sqlite3 (2.9.2-arm64-darwin) + sqlite3 (2.9.2-x86-linux-gnu) + sqlite3 (2.9.2-x86-linux-musl) + sqlite3 (2.9.2-x86_64-darwin) + sqlite3 (2.9.2-x86_64-linux-gnu) + sqlite3 (2.9.2-x86_64-linux-musl) + stringio (3.2.0) + terminal-table (4.0.0) + unicode-display_width (>= 1.1.1, < 4) + thor (1.5.0) + tilt (2.7.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (3.2.0) + unicode-emoji (~> 4.1) + unicode-emoji (4.2.0) + uri (1.1.1) PLATFORMS - ruby + aarch64-linux + aarch64-linux-gnu + aarch64-linux-musl + arm-linux-gnu + arm-linux-musl + arm64-darwin + x86-linux-gnu + x86-linux-musl + x86_64-darwin + x86_64-linux + x86_64-linux-gnu + x86_64-linux-musl DEPENDENCIES - gemstash (~> 2.0) - mysql2 (~> 0.5.2) - pg (~> 0.18.4) + gemstash (~> 2.8) + mysql2 (~> 0.5) + pg (~> 1.5) + +CHECKSUMS + activesupport (8.1.3) sha256=21a5e0dfbd4c3ddd9e1317ec6a4d782fa226e7867dc70b0743acda81a1dca20e + base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b + bigdecimal (4.1.0) sha256=6dc07767aa3dc456ccd48e7ae70a07b474e9afd7c5bc576f80bd6da5c8dd6cae + concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab + connection_pool (3.0.2) sha256=33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a + dalli (4.3.3) sha256=ae58aa3442b0d9e129898f56bc6e3a0f8b6149523e723b3eb124a05ae9a2da0c + date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 + drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373 + faraday (1.10.5) sha256=b144f1d2b045652fa820b5f532723e1643cc28b93dae911d784e5c5f88e8f6ed + faraday-em_http (1.0.0) sha256=7a3d4c7079789121054f57e08cd4ef7e40ad1549b63101f38c7093a9d6c59689 + faraday-em_synchrony (1.0.1) sha256=bf3ce45dcf543088d319ab051f80985ea6d294930635b7a0b966563179f81750 + faraday-excon (1.1.0) sha256=b055c842376734d7f74350fe8611542ae2000c5387348d9ba9708109d6e40940 + faraday-httpclient (1.0.1) sha256=4c8ff1f0973ff835be8d043ef16aaf54f47f25b7578f6d916deee8399a04d33b + faraday-multipart (1.2.0) sha256=7d89a949693714176f612323ca13746a2ded204031a6ba528adee788694ef757 + faraday-net_http (1.0.2) sha256=63992efea42c925a20818cf3c0830947948541fdcf345842755510d266e4c682 + faraday-net_http_persistent (1.2.0) sha256=0b0cbc8f03dab943c3e1cc58d8b7beb142d9df068b39c718cd83e39260348335 + faraday-patron (1.0.0) sha256=dc2cd7b340bb3cc8e36bcb9e6e7eff43d134b6d526d5f3429c7a7680ddd38fa7 + faraday-rack (1.0.0) sha256=ef60ec969a2bb95b8dbf24400155aee64a00fc8ba6c6a4d3968562bcc92328c0 + faraday-retry (1.0.4) sha256=dc659233777fabf96c69c2ffe56c0a5d2c102af90321a42cc6c90157bcd716aa + faraday_middleware (1.2.1) sha256=d45b78c8ee864c4783fbc276f845243d4a7918a67301c052647bacabec0529e9 + gemstash (2.8.0) sha256=da1a29a9153f1235b2ca6e808a628a146c4d9107a246659c76fc705a8a58824f + i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5 + json (2.19.3) sha256=289b0bb53052a1fa8c34ab33cc750b659ba14a5c45f3fcf4b18762dc67c78646 + logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + lru_redux (1.1.0) sha256=ee71d0ccab164c51de146c27b480a68b3631d5b4297b8ffe8eda1c72de87affb + minitest (6.0.2) sha256=db6e57956f6ecc6134683b4c87467d6dd792323c7f0eea7b93f66bd284adbc3d + multipart-post (2.4.1) sha256=9872d03a8e552020ca096adadbf5e3cb1cd1cdd6acd3c161136b8a5737cdb4a8 + mustermann (3.0.4) sha256=85fadcb6b3c6493a8b511b42426f904b7f27b282835502233dd154daab13aa22 + mysql2 (0.5.7) sha256=ba09ede515a0ae8a7192040a1b778c0fb0f025fa5877e9be895cd325fa5e9d7b + nio4r (2.7.5) sha256=6c90168e48fb5f8e768419c93abb94ba2b892a1d0602cb06eef16d8b7df1dca1 + pg (1.6.3) sha256=1388d0563e13d2758c1089e35e973a3249e955c659592d10e5b77c468f628a99 + pg (1.6.3-aarch64-linux) sha256=0698ad563e02383c27510b76bf7d4cd2de19cd1d16a5013f375dd473e4be72ea + pg (1.6.3-aarch64-linux-musl) sha256=06a75f4ea04b05140146f2a10550b8e0d9f006a79cdaf8b5b130cde40e3ecc2c + pg (1.6.3-arm64-darwin) sha256=7240330b572e6355d7c75a7de535edb5dfcbd6295d9c7777df4d9dddfb8c0e5f + pg (1.6.3-x86_64-darwin) sha256=ee2e04a17c0627225054ffeb43e31a95be9d7e93abda2737ea3ce4a62f2729d6 + pg (1.6.3-x86_64-linux) sha256=5d9e188c8f7a0295d162b7b88a768d8452a899977d44f3274d1946d67920ae8d + pg (1.6.3-x86_64-linux-musl) sha256=9c9c90d98c72f78eb04c0f55e9618fe55d1512128e411035fe229ff427864009 + prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + psych (5.3.1) sha256=eb7a57cef10c9d70173ff74e739d843ac3b2c019a003de48447b2963d81b1974 + puma (7.2.0) sha256=bf8ef4ab514a4e6d4554cb4326b2004eba5036ae05cf765cfe51aba9706a72a8 + rack (3.2.5) sha256=4cbd0974c0b79f7a139b4812004a62e4c60b145cba76422e288ee670601ed6d3 + rack-protection (4.2.1) sha256=cf6e2842df8c55f5e4d1a4be015e603e19e9bc3a7178bae58949ccbb58558bac + rack-session (2.1.1) sha256=0b6dc07dea7e4b583f58a48e8b806d4c9f1c6c9214ebc202ec94562cbea2e4e9 + ruby2_keywords (0.0.5) sha256=ffd13740c573b7301cf7a2e61fc857b2a8e3d3aff32545d6f8300d8bae10e3ef + securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1 + sequel (5.102.0) sha256=c25bb85a44ae59b3ed41ca7c32c33316cf81a6fcaeabedb4036ba141dde70919 + server_health_check (1.0.2) sha256=8d174b82c2c41569599fda55832fde35c321172d8e9e42828490657545fa9019 + server_health_check-rack (0.1.0) sha256=1a5e27eb9e62dc7b433c5f8ce0b199dbb070c87b344d7d8405c6a1d049caf831 + sinatra (4.2.1) sha256=b7aeb9b11d046b552972ade834f1f9be98b185fa8444480688e3627625377080 + sqlite3 (2.9.2-aarch64-linux-gnu) sha256=eeb86db55645b85327ba75129e3614658d974bf4da8fdc87018a0d42c59f6e42 + sqlite3 (2.9.2-aarch64-linux-musl) sha256=4feff91fb8c2b13688da34b5627c9d1ed9cedb3ee87a7114ec82209147f07a6d + sqlite3 (2.9.2-arm-linux-gnu) sha256=1ee2eb06b5301aaf5ce343a6e88d99ac932d95202d7b350f0e7b6d8d588580d7 + sqlite3 (2.9.2-arm-linux-musl) sha256=8ca0de6aceede968de0394e22e95d549834c4d8e318f69a92a52f049878a0057 + sqlite3 (2.9.2-arm64-darwin) sha256=d15bd9609a05f9d54930babe039585efc8cadd57517c15b64ec7dfa75158a5e9 + sqlite3 (2.9.2-x86-linux-gnu) sha256=066bc904522f8a7072236a81237c03a4a1dfe070a25107e392de03d1e4ad0e6d + sqlite3 (2.9.2-x86-linux-musl) sha256=6503c76278f5e8629b12b6518ff43a9a4f6d9381de73f0b086c9fa1226db5ede + sqlite3 (2.9.2-x86_64-darwin) sha256=ed691b5021674d72582d03c5a38e89634b961902735fb6225273892805421d13 + sqlite3 (2.9.2-x86_64-linux-gnu) sha256=dce83ffcb7e72f9f7aeb6e5404f15d277a45332fe18ccce8a8b3ed51e8d23aee + sqlite3 (2.9.2-x86_64-linux-musl) sha256=e8dd906a613f13b60f6d47ae9dda376384d9de1ab3f7e3f2fdf2fd18a871a2d7 + stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 + terminal-table (4.0.0) sha256=f504793203f8251b2ea7c7068333053f0beeea26093ec9962e62ea79f94301d2 + thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 + tilt (2.7.0) sha256=0d5b9ba69f6a36490c64b0eee9f6e9aad517e20dcc848800a06eb116f08c6ab3 + tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b + unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 + unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f + uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6 RUBY VERSION - ruby 2.6.3p62 + ruby 3.4.9 BUNDLED WITH - 1.17.2 + 4.0.9 diff --git a/docker-compose.mysql.yml b/docker-compose.mysql.yml index 51dde31..57deead 100644 --- a/docker-compose.mysql.yml +++ b/docker-compose.mysql.yml @@ -1,8 +1,8 @@ --- -version: '2.1' services: gemstash: - image: zappi/gemstash:1.2.0 + build: . + image: zappi/gemstash:2.0.0 environment: RACK_ENV: production GEMSTASH_DB_ADAPTER: mysql2 @@ -16,13 +16,11 @@ services: - 9292:9292 volumes: - gemstash_data:/home/gemstash/data - links: - - mysql depends_on: mysql: condition: service_healthy mysql: - image: mysql:5.7.19 + image: mysql:8.0 volumes: - mysql_data:/var/lib/mysql expose: diff --git a/docker-compose.postgres.yml b/docker-compose.postgres.yml index bde3a10..0b65b36 100644 --- a/docker-compose.postgres.yml +++ b/docker-compose.postgres.yml @@ -1,8 +1,8 @@ --- -version: '2.1' services: gemstash: - image: zappi/gemstash:1.2.0 + build: . + image: zappi/gemstash:2.0.0 environment: RACK_ENV: production GEMSTASH_DB_ADAPTER: postgres @@ -16,12 +16,12 @@ services: - 9292:9292 volumes: - gemstash_data:/home/gemstash/data - links: + depends_on: - postgres postgres: - image: postgres:9.6.3-alpine + image: postgres:16-alpine volumes: - - postgres_data:/var/lib/mysql + - postgres_data:/var/lib/postgresql/data expose: - 5432 environment: diff --git a/docker-compose.sqlite.yml b/docker-compose.sqlite.yml index fc4d019..be1ce15 100644 --- a/docker-compose.sqlite.yml +++ b/docker-compose.sqlite.yml @@ -1,11 +1,8 @@ --- -version: '2.1' services: gemstash: - build: - context: . - dockerfile: Dockerfile - image: zappi/gemstash:1.2.0 + build: . + image: zappi/gemstash:2.0.0 environment: RACK_ENV: production ports: From acc35996a6706f9ac7f8bee3043e0ea4d8a697e7 Mon Sep 17 00:00:00 2001 From: Nicholas Volker <45795784+nvolker@users.noreply.github.com> Date: Tue, 31 Mar 2026 15:52:43 +0200 Subject: [PATCH 2/2] Fix data dir permissions and switch to MariaDB - Create /home/gemstash/data with correct ownership before VOLUME directive, fixing "Base path is not writable" error - Switch MySQL compose to MariaDB 11, since Alpine's mariadb-dev provides MariaDB Connector C which has SSL incompatibilities with MySQL 8.0's caching_sha2_password + self-signed certs - Update healthcheck to use mariadb CLI and MARIADB_* env vars Co-Authored-By: Claude Opus 4.6 (1M context) --- CHANGELOG.md | 2 +- Dockerfile | 2 ++ docker-compose.mysql.yml | 8 ++++---- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e47efcf..417190e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ * Upgrade mysql2 gem from v0.5.2 to v0.5.7. * Upgrade puma from v3.12.6 to v7.2.0. * Upgrade all transitive dependencies (activesupport 8.1, sinatra 4.2, rack 3.2, etc.). -* Upgrade MySQL image from v5.7.19 to v8.0. +* Switch MySQL image to MariaDB v11 (Alpine uses MariaDB's client library, making this a better match). * Upgrade PostgreSQL image from v9.6.3 to v16. * Fix PostgreSQL volume mount path (was incorrectly set to /var/lib/mysql). * Remove deprecated docker-compose version key. diff --git a/Dockerfile b/Dockerfile index 2f5431e..7b35972 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,6 +24,8 @@ WORKDIR "${GEMSTASH_HOME}/app" COPY "app/" "${GEMSTASH_HOME}/app" RUN bundle install --jobs 4 --retry 3 +RUN mkdir -p "${GEMSTASH_HOME}/data" && \ + chown ${GEMSTASH_USER}:${GEMSTASH_USER} "${GEMSTASH_HOME}/data" VOLUME "${GEMSTASH_HOME}/data" EXPOSE 9292 diff --git a/docker-compose.mysql.yml b/docker-compose.mysql.yml index 57deead..ed5ad54 100644 --- a/docker-compose.mysql.yml +++ b/docker-compose.mysql.yml @@ -20,18 +20,18 @@ services: mysql: condition: service_healthy mysql: - image: mysql:8.0 + image: mariadb:11 volumes: - mysql_data:/var/lib/mysql expose: - 3306 environment: - - MYSQL_ROOT_PASSWORD=sekretpassword - - MYSQL_DATABASE=gemstash + - MARIADB_ROOT_PASSWORD=sekretpassword + - MARIADB_DATABASE=gemstash healthcheck: test: - CMD - - mysql + - mariadb - --user=root - --password=sekretpassword - --execute=select 1