- pg + sequel: connect to the storage stack's Postgres. - prawn + prawn-table: render invoice PDFs. - aws-sdk-s3: upload PDFs to MinIO and mint presigned download URLs. Also pulls libpq-dev into the Docker build (for the pg gem) and the postgresql client lib into the Nix dev shell.
27 lines
628 B
Docker
27 lines
628 B
Docker
FROM ruby:3.4-slim-bookworm
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
build-essential \
|
|
libpq-dev \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN groupadd -g 11000 asxpio \
|
|
&& useradd -d /app -u 21000 -g 11000 -m -s /bin/bash asxpio
|
|
|
|
WORKDIR /app
|
|
USER asxpio
|
|
|
|
ENV GEM_HOME=/app/bundle
|
|
ENV PATH="${GEM_HOME}/bin:${PATH}"
|
|
|
|
COPY --chown=asxpio Gemfile Gemfile.lock* ./
|
|
RUN bundle install --without development
|
|
|
|
COPY --chown=asxpio . .
|
|
|
|
ENV PUMA_PORT=3000
|
|
ENV PUMA_THREADS="4:16"
|
|
ENV RACK_ENV=production
|
|
EXPOSE 3000
|
|
|
|
CMD ["sh", "-c", "exec puma -b tcp://0.0.0.0:${PUMA_PORT} -t ${PUMA_THREADS} --preload"]
|