From 78b4d381e70712bb3bae5d2fb9bc5857fceaa078 Mon Sep 17 00:00:00 2001 From: Rub21 Date: Thu, 18 Jun 2026 09:14:39 -0600 Subject: [PATCH 1/3] Updata database to support postgis --- images/db/Dockerfile | 14 +++++++++++--- images/db/scripts/init-extensions.sh | 8 ++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) create mode 100755 images/db/scripts/init-extensions.sh diff --git a/images/db/Dockerfile b/images/db/Dockerfile index ed35e853..8de2288e 100644 --- a/images/db/Dockerfile +++ b/images/db/Dockerfile @@ -1,7 +1,6 @@ -# Stage 1: Compilar el plugin para PostgreSQL 17 FROM postgres:17 AS builder -# Instalar dependencias de compilación +# Install build dependencies RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ build-essential \ @@ -18,7 +17,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ && update-ca-certificates \ && rm -rf /var/lib/apt/lists/* -# Clonar y compilar el plugin osmdbt para PostgreSQL 17 +# Clone and build osmdbt plugin for PostgreSQL 17 RUN git clone https://github.com/openstreetmap/osmdbt.git /tmp/osmdbt && \ cd /tmp/osmdbt && \ git checkout v0.9 && \ @@ -29,6 +28,15 @@ RUN git clone https://github.com/openstreetmap/osmdbt.git /tmp/osmdbt && \ FROM postgres:17 +RUN apt-get update && apt-get install -y --no-install-recommends \ + postgresql-17-postgis-3 \ + postgresql-17-postgis-3-scripts \ + && rm -rf /var/lib/apt/lists/* + +# Auto-create required extensions on fresh initdb +COPY ./scripts/init-extensions.sh /docker-entrypoint-initdb.d/10-extensions.sh +RUN chmod +x /docker-entrypoint-initdb.d/10-extensions.sh + COPY --from=builder /tmp/osmdbt/postgresql-plugin/build/osm-logical.so /usr/lib/postgresql/17/lib/osm-logical.so RUN ln -s /usr/lib/postgresql/17/lib/osm-logical.so /usr/lib/postgresql/17/lib/osm_logical.so diff --git a/images/db/scripts/init-extensions.sh b/images/db/scripts/init-extensions.sh new file mode 100755 index 00000000..9c780af7 --- /dev/null +++ b/images/db/scripts/init-extensions.sh @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +psql --username="$POSTGRES_USER" --dbname="$POSTGRES_DB" -v ON_ERROR_STOP=1 <<-'EOSQL' + CREATE EXTENSION IF NOT EXISTS postgis; + CREATE EXTENSION IF NOT EXISTS hstore; + CREATE EXTENSION IF NOT EXISTS btree_gist; +EOSQL From aa4a0fa44794dd1f41df9b61bb33fc3eb74d98fb Mon Sep 17 00:00:00 2001 From: Rub21 Date: Thu, 18 Jun 2026 09:18:28 -0600 Subject: [PATCH 2/3] Update web api container for upstream --- images/web/Dockerfile | 19 ++++++++++++------- images/web/config/production.conf | 3 +++ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/images/web/Dockerfile b/images/web/Dockerfile index d905ff9a..1cea1a58 100644 --- a/images/web/Dockerfile +++ b/images/web/Dockerfile @@ -1,4 +1,4 @@ -FROM ruby:3.3-slim AS builder +FROM ruby:3.4-slim AS builder ENV DEBIAN_FRONTEND=noninteractive \ workdir=/var/www \ @@ -14,9 +14,9 @@ WORKDIR $workdir RUN apt-get update && \ apt-get install -y --no-install-recommends \ git curl gnupg build-essential \ - libarchive-dev zlib1g-dev libcurl4-openssl-dev \ + libarchive-dev zlib1g-dev libcurl4-openssl-dev libgd-dev \ apache2 apache2-dev libapache2-mod-fcgid libapr1-dev libaprutil1-dev \ - postgresql-client libpq-dev libxml2-dev libyaml-dev libgd-dev \ + postgresql-client libpq-dev libxml2-dev libyaml-dev \ pngcrush optipng advancecomp pngquant jhead jpegoptim gifsicle libjpeg-progs unzip\ && curl -fsSL https://deb.nodesource.com/setup_24.x | bash - \ && apt-get install -y nodejs \ @@ -24,14 +24,14 @@ RUN apt-get update && \ && apt-get clean && rm -rf /var/lib/apt/lists/* # Download OHM Website using gitsha, faster than cloning -ENV OPENHISTORICALMAP_WEBSITE_GITSHA=8fe2e830e089da8eb1af4ce611ea361307ee2ba7 +ENV OPENHISTORICALMAP_WEBSITE_GITSHA=ecd8301fd333946b50137fb702bb5c1cbd1c3970 ENV OHM_WEBSITE_URL=https://github.com/OpenHistoricalMap/ohm-website/archive/${OPENHISTORICALMAP_WEBSITE_GITSHA}.zip RUN rm -rf $workdir/* && curl -fsSL $OHM_WEBSITE_URL -o /tmp/ohm-website.zip && \ unzip /tmp/ohm-website.zip -d /tmp && \ mv /tmp/ohm-website-$OPENHISTORICALMAP_WEBSITE_GITSHA/* $workdir && \ rm -rf /tmp/* -RUN gem install bundler && \ +RUN gem install bundler -v 4.0.11 --no-document && \ bundle install && \ yarn install && \ bundle exec rake yarn:install @@ -77,7 +77,7 @@ RUN git clone https://github.com/OpenHistoricalMap/leaflet-ohm-timeslider-v2.git cp leaflet-ohm-timeslider.* $workdir/app/assets/stylesheets/ && \ cp assets/* $workdir/app/assets/images/ -FROM ruby:3.3-slim +FROM ruby:3.4-slim ENV DEBIAN_FRONTEND=noninteractive \ workdir=/var/www \ @@ -116,6 +116,7 @@ RUN BUILD_DEPS=" \ gifsicle \ postgresql-client \ curl \ + git \ libvips \ nodejs \ \ @@ -123,7 +124,7 @@ RUN BUILD_DEPS=" \ \ # Install Passenger as a gem and compile the Apache module \ - && gem install passenger --no-document \ + && gem install passenger -v 6.1.3 --no-document \ && yes | passenger-install-apache2-module --auto --languages ruby \ && passenger-config validate-install --auto \ \ @@ -152,6 +153,10 @@ RUN a2enmod headers setenvif proxy proxy_http proxy_fcgi fcgid rewrite lbmethod_ echo "ServerName localhost" >> /etc/apache2/apache2.conf && \ apache2ctl configtest +# Install bundler matching ohm-website Gemfile.lock to avoid Passenger preloader Gem::LoadError. +RUN gem install bundler -v 4.0.11 --no-document + + RUN echo '#!/bin/bash\nexec /usr/local/bin/ruby --yjit --yjit-exec-mem-size=64 "$@"' > /usr/local/bin/ruby_yjit && \ chmod +x /usr/local/bin/ruby_yjit diff --git a/images/web/config/production.conf b/images/web/config/production.conf index 87be1d2e..bb1260b4 100644 --- a/images/web/config/production.conf +++ b/images/web/config/production.conf @@ -4,6 +4,9 @@ DocumentRoot /var/www/public PassengerAppEnv production PassengerRuby /usr/local/bin/ruby + # Load Bundler before Ruby preloads default gems so Gemfile.lock pins + # (e.g. stringio 3.2.0) win over Ruby-bundled defaults like 3.1.2. + PassengerPreloadBundler on RewriteEngine On # Redirect to HTTPS From 0886cd70e2e1bb667e4772783ffd1ec7dfc7ba1a Mon Sep 17 00:00:00 2001 From: Rub21 Date: Thu, 18 Jun 2026 09:23:02 -0600 Subject: [PATCH 3/3] Update gitsha for web --- images/web/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/web/Dockerfile b/images/web/Dockerfile index 1cea1a58..a429559f 100644 --- a/images/web/Dockerfile +++ b/images/web/Dockerfile @@ -24,7 +24,7 @@ RUN apt-get update && \ && apt-get clean && rm -rf /var/lib/apt/lists/* # Download OHM Website using gitsha, faster than cloning -ENV OPENHISTORICALMAP_WEBSITE_GITSHA=ecd8301fd333946b50137fb702bb5c1cbd1c3970 +ENV OPENHISTORICALMAP_WEBSITE_GITSHA=0feb1c3337967a3154234d8b7cb1d644094dbc19 ENV OHM_WEBSITE_URL=https://github.com/OpenHistoricalMap/ohm-website/archive/${OPENHISTORICALMAP_WEBSITE_GITSHA}.zip RUN rm -rf $workdir/* && curl -fsSL $OHM_WEBSITE_URL -o /tmp/ohm-website.zip && \ unzip /tmp/ohm-website.zip -d /tmp && \