Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ name: testsuite

on:
push:
branches: [ master ]
branches: [ master, leland-test ]
pull_request:
branches: [ master ]
branches: [ master, leland-test ]

env:
RUBY_VERSION: 2.7.4
Expand Down Expand Up @@ -66,7 +66,7 @@ jobs:
publish-latest:
runs-on: ubuntu-latest
needs: [lint, test_unit, test_postman]
if: github.ref == 'refs/heads/master' && github.event_name == 'push'
if: github.ref == 'refs/heads/leland-test' && github.event_name == 'push'
steps:
- uses: actions/checkout@v2
- uses: docker/setup-qemu-action@v1
Expand Down
59 changes: 50 additions & 9 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,58 @@ FROM sheltertechsf/combostrikehq-docker-rails:ruby-2.7
# NB The xenial-pgdg package that we're installing with APT below may be removed from Postgres' repo
# when future Linux updates come out. See: https://wiki.postgresql.org/wiki/Apt for updates.

# Restore dpkg directories and status file
RUN mkdir -p /var/lib/dpkg/alternatives /var/lib/dpkg/info /var/lib/dpkg/parts /var/lib/dpkg/triggers /var/lib/dpkg/updates && \
touch /var/lib/dpkg/status && \
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add - && \
mv /home/app/webapp/config/appserver.sh /etc/service/appserver/run && \
chmod 777 /etc/service/appserver/run && \
echo 'deb http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main' > /etc/apt/sources.list.d/pgdg.list && \
curl --silent https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \
apt-get update && \
touch /var/lib/dpkg/status

# Remove ALL problematic repository configurations that may have expired/missing GPG keys
# We'll add only what we need later
RUN rm -f /etc/apt/sources.list.d/*.list 2>/dev/null || true

# Install prerequisites for GPG keyring management and HTTPS repositories
RUN apt-get update --allow-releaseinfo-change && \
apt-get install -y --no-install-recommends curl wget gnupg ca-certificates apt-transport-https && \
rm -rf /var/lib/apt/lists/*

# Install libglib2.0-dev from default Ubuntu repositories first
RUN apt-get clean && \
rm -rf /var/lib/apt/lists/* && \
apt-get update --allow-releaseinfo-change && \
apt-get install -y libglib2.0-dev && \
rm -rf /var/lib/apt/lists/*

# Create keyrings directory
RUN mkdir -p /usr/share/keyrings

# Add PostgreSQL repository with modern GPG keyring approach for postgresql-client-common
# Download and process GPG key using wget (more reliable for piping)
RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | \
gpg --dearmor -o /usr/share/keyrings/postgresql-keyring.gpg && \
test -f /usr/share/keyrings/postgresql-keyring.gpg

# Add PostgreSQL repository configuration
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

# Update package lists and install postgresql-client-common
# Debug: Show error details if update fails
RUN apt-get clean && \
rm -rf /var/lib/apt/lists/* && \
apt-get update --allow-releaseinfo-change 2>&1 | tee /tmp/apt-update.log || \
(echo "=== apt-get update failed, showing error details ===" && \
cat /tmp/apt-update.log | grep -E "Err|W:|E:" | head -20 && \
echo "=== Repository configuration ===" && \
cat /etc/apt/sources.list.d/pgdg.list && \
echo "=== Keyring file check ===" && \
ls -la /usr/share/keyrings/postgresql-keyring.gpg && \
echo "=== All sources.list.d files ===" && \
ls -la /etc/apt/sources.list.d/ && \
exit 1) && \
apt-get install -y postgresql-client-common && \
rm -rf /var/lib/apt/lists/*

ENV LD_PRELOAD=$LD_PRELOAD:/lib/x86_64-linux-gnu/libjemalloc.so.2
# Configure appserver
RUN mkdir -p /etc/service/appserver && \
mv /home/app/webapp/config/appserver.sh /etc/service/appserver/run && \
chmod 777 /etc/service/appserver/run

ENV LD_PRELOAD=/lib/x86_64-linux-gnu/libjemalloc.so.2
Loading