43 lines
955 B
Docker
43 lines
955 B
Docker
# syntax=docker/dockerfile:1
|
|
FROM docker.io/library/ruby:3.1.5-alpine3.18
|
|
|
|
RUN apk add --no-cache \
|
|
bash \
|
|
brotli-dev \
|
|
build-base \
|
|
ca-certificates \
|
|
curl \
|
|
file \
|
|
file-dev \
|
|
git \
|
|
git-lfs \
|
|
nodejs \
|
|
npm \
|
|
openssl \
|
|
py3-pip \
|
|
python3 \
|
|
tini \
|
|
vips-dev \
|
|
&& npm install -g pnpm@9 \
|
|
&& python3 -m pip install --no-cache-dir fonttools brotli \
|
|
&& gem install bundler --version 2.6.9 --no-document \
|
|
&& rm -rf /var/cache/apk/*
|
|
|
|
WORKDIR /srv/site
|
|
|
|
# Keep UIDs aligned with the common host UID so bind-mounted files and
|
|
# dependency volumes remain writable.
|
|
RUN addgroup -g 1000 app \
|
|
&& adduser -D -u 1000 -G app app \
|
|
&& mkdir -p /srv/site/_site /srv/site/vendor/bundle /srv/site/node_modules \
|
|
&& chown -R 1000:1000 /srv/site
|
|
|
|
ENV HOME=/tmp \
|
|
BUNDLE_APP_CONFIG=/srv/site/.bundle \
|
|
BUNDLE_PATH=/srv/site/vendor/bundle
|
|
|
|
USER app
|
|
|
|
ENTRYPOINT ["/sbin/tini", "--"]
|
|
CMD ["sh"]
|