-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
29 lines (26 loc) · 1.41 KB
/
Copy pathDockerfile
File metadata and controls
29 lines (26 loc) · 1.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# CI base image for the org's Ruby/Rails projects.
#
# Bakes Ruby + Node + Playwright (chromium) so CI jobs skip the per-run apt
# install, Node setup, and Playwright browser download. Gems and npm packages
# are intentionally NOT baked — they change too often and stay on CI caches in
# the consuming repo.
#
# Published to ghcr.io/lineofflight/ruby-node-playwright by .github/workflows/build.yml.
FROM rubylang/ruby:4.0.5-dev-noble
# System packages for building common native gems (pg, psych, ...).
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
libpq-dev libyaml-dev pkg-config curl gnupg \
&& rm -rf /var/lib/apt/lists/*
# Node.js 24 (current Active LTS).
RUN curl -fsSL https://deb.nodesource.com/setup_24.x | bash - \
&& apt-get install -y --no-install-recommends nodejs \
&& rm -rf /var/lib/apt/lists/*
# Playwright chromium + its OS dependencies. Install to a fixed, HOME-independent
# path and expose it via ENV so the baked browsers are found at job time —
# GitHub Actions container jobs run with HOME=/github/home, not /root, so the
# default ~/.cache/ms-playwright location would otherwise miss. This mirrors the
# convention used by the official Playwright images. Pinned to the playwright
# version consumers resolve to; keep in sync to avoid a re-download at job time.
ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwright
RUN npx --yes playwright@1.60.0 install --with-deps chromium