@@ -9,17 +9,58 @@ FROM sheltertechsf/combostrikehq-docker-rails:ruby-2.7
99# NB The xenial-pgdg package that we're installing with APT below may be removed from Postgres' repo
1010# when future Linux updates come out. See: https://wiki.postgresql.org/wiki/Apt for updates.
1111
12+ # Restore dpkg directories and status file
1213RUN mkdir -p /var/lib/dpkg/alternatives /var/lib/dpkg/info /var/lib/dpkg/parts /var/lib/dpkg/triggers /var/lib/dpkg/updates && \
13- touch /var/lib/dpkg/status && \
14- curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
15- wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add - && \
16- mv /home/app/webapp/config/appserver.sh /etc/service/appserver/run && \
17- chmod 777 /etc/service/appserver/run && \
18- echo 'deb http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main' > /etc/apt/sources.list.d/pgdg.list && \
19- curl --silent https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \
20- apt-get update && \
14+ touch /var/lib/dpkg/status
15+
16+ # Remove ALL problematic repository configurations that may have expired/missing GPG keys
17+ # We'll add only what we need later
18+ RUN rm -f /etc/apt/sources.list.d/*.list 2>/dev/null || true
19+
20+ # Install prerequisites for GPG keyring management and HTTPS repositories
21+ RUN apt-get update --allow-releaseinfo-change && \
22+ apt-get install -y --no-install-recommends curl wget gnupg ca-certificates apt-transport-https && \
23+ rm -rf /var/lib/apt/lists/*
24+
25+ # Install libglib2.0-dev from default Ubuntu repositories first
26+ RUN apt-get clean && \
27+ rm -rf /var/lib/apt/lists/* && \
28+ apt-get update --allow-releaseinfo-change && \
2129 apt-get install -y libglib2.0-dev && \
30+ rm -rf /var/lib/apt/lists/*
31+
32+ # Create keyrings directory
33+ RUN mkdir -p /usr/share/keyrings
34+
35+ # Add PostgreSQL repository with modern GPG keyring approach for postgresql-client-common
36+ # Download and process GPG key using wget (more reliable for piping)
37+ RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | \
38+ gpg --dearmor -o /usr/share/keyrings/postgresql-keyring.gpg && \
39+ test -f /usr/share/keyrings/postgresql-keyring.gpg
40+
41+ # Add PostgreSQL repository configuration
42+ RUN echo "deb [signed-by=/usr/share/keyrings/postgresql-keyring.gpg] https://apt.postgresql.org/pub/repos/apt/ focal-pgdg main" > /etc/apt/sources.list.d/pgdg.list
43+
44+ # Update package lists and install postgresql-client-common
45+ # Debug: Show error details if update fails
46+ RUN apt-get clean && \
47+ rm -rf /var/lib/apt/lists/* && \
48+ apt-get update --allow-releaseinfo-change 2>&1 | tee /tmp/apt-update.log || \
49+ (echo "=== apt-get update failed, showing error details ===" && \
50+ cat /tmp/apt-update.log | grep -E "Err|W:|E:" | head -20 && \
51+ echo "=== Repository configuration ===" && \
52+ cat /etc/apt/sources.list.d/pgdg.list && \
53+ echo "=== Keyring file check ===" && \
54+ ls -la /usr/share/keyrings/postgresql-keyring.gpg && \
55+ echo "=== All sources.list.d files ===" && \
56+ ls -la /etc/apt/sources.list.d/ && \
57+ exit 1) && \
2258 apt-get install -y postgresql-client-common && \
2359 rm -rf /var/lib/apt/lists/*
2460
25- ENV LD_PRELOAD=$LD_PRELOAD:/lib/x86_64-linux-gnu/libjemalloc.so.2
61+ # Configure appserver
62+ RUN mkdir -p /etc/service/appserver && \
63+ mv /home/app/webapp/config/appserver.sh /etc/service/appserver/run && \
64+ chmod 777 /etc/service/appserver/run
65+
66+ ENV LD_PRELOAD=/lib/x86_64-linux-gnu/libjemalloc.so.2
0 commit comments