2024-05-30 20:33:19 -07:00
|
|
|
# syntax = docker/dockerfile:1
|
2023-10-15 16:47:24 -07:00
|
|
|
|
|
|
|
|
# Make sure RUBY_VERSION matches the Ruby version in .ruby-version and Gemfile
|
2025-11-03 21:20:51 -08:00
|
|
|
ARG RUBY_VERSION=3.3.9
|
2024-05-30 20:33:19 -07:00
|
|
|
FROM docker.io/library/ruby:$RUBY_VERSION-slim as base
|
2023-10-15 16:47:24 -07:00
|
|
|
|
|
|
|
|
# OS Level Dependencies
|
|
|
|
|
RUN --mount=type=cache,target=/var/cache/apt \
|
|
|
|
|
--mount=type=cache,target=/var/lib/apt,sharing=locked \
|
|
|
|
|
--mount=type=tmpfs,target=/var/log \
|
|
|
|
|
rm -f /etc/apt/apt.conf.d/docker-clean; \
|
|
|
|
|
echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache; \
|
|
|
|
|
apt-get update -qq \
|
|
|
|
|
&& apt-get install -yq --no-install-recommends \
|
|
|
|
|
build-essential \
|
2025-11-24 08:22:44 -05:00
|
|
|
cmake \
|
|
|
|
|
ruby-dev \
|
2023-10-15 16:47:24 -07:00
|
|
|
gnupg2 \
|
|
|
|
|
less \
|
|
|
|
|
git \
|
2025-11-24 08:22:44 -05:00
|
|
|
unixodbc \
|
|
|
|
|
unixodbc-dev \
|
|
|
|
|
tdsodbc \
|
|
|
|
|
freetds-dev \
|
2023-10-15 16:47:24 -07:00
|
|
|
libvips \
|
2025-11-24 08:22:44 -05:00
|
|
|
libpq-dev \
|
2024-05-30 20:33:19 -07:00
|
|
|
curl \
|
|
|
|
|
libjemalloc2 \
|
2025-03-02 17:09:56 -08:00
|
|
|
pkg-config \
|
2025-11-24 08:22:44 -05:00
|
|
|
python3-dev \
|
|
|
|
|
wget \
|
|
|
|
|
libtool \
|
|
|
|
|
libssl-dev && \
|
|
|
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
|
|
|
|
ARG WATCHMAN_VERSION=v2025.11.10.00
|
|
|
|
|
WORKDIR /tmp
|
|
|
|
|
RUN git clone https://github.com/facebook/watchman.git -b ${WATCHMAN_VERSION} --depth 1 && \
|
|
|
|
|
cd watchman && \
|
|
|
|
|
./autogen.sh && \
|
|
|
|
|
./configure && \
|
|
|
|
|
make && \
|
|
|
|
|
make install
|
|
|
|
|
|
|
|
|
|
# Download and install Watchman from the pre-compiled binary
|
|
|
|
|
# RUN curl -L https://github.com/facebook/watchman/archive/refs/tags/v${WATCHMAN_VERSION}.zip -o watchman.zip \
|
|
|
|
|
# && unzip watchman.zip \
|
|
|
|
|
# && rm watchman.zip \
|
|
|
|
|
# && cd watchman-${WATCHMAN_VERSION} \
|
|
|
|
|
# && mkdir -p /usr/local/{bin,lib} /usr/local/var/run/watchman \
|
|
|
|
|
# && chmod 755 /usr/local/bin/watchman \
|
|
|
|
|
# && chmod 2777 /usr/local/var/run/watchman \
|
|
|
|
|
# && cd .. \
|
|
|
|
|
# && rm -fr ${WATCHMAN_VERSION}
|
|
|
|
|
|
|
|
|
|
# OS Level Dependencies
|
|
|
|
|
# RUN --mount=type=cache,target=/var/cache/apt \
|
|
|
|
|
# --mount=type=cache,target=/var/lib/apt,sharing=locked \
|
|
|
|
|
# --mount=type=tmpfs,target=/var/log \
|
|
|
|
|
# rm -f /etc/apt/apt.conf.d/docker-clean; \
|
|
|
|
|
# echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache; \
|
|
|
|
|
# apt-get update -qq \
|
|
|
|
|
# && apt-get install -yq --no-install-recommends \
|
|
|
|
|
# build-essential \
|
|
|
|
|
# ruby-dev \
|
|
|
|
|
# gnupg2 \
|
|
|
|
|
# less \
|
|
|
|
|
# git \
|
|
|
|
|
# unixodbc \
|
|
|
|
|
# unixodbc-dev \
|
|
|
|
|
# tdsodbc \
|
|
|
|
|
# freetds-dev \
|
|
|
|
|
# libvips \
|
|
|
|
|
# libpq-dev \
|
|
|
|
|
# curl \
|
|
|
|
|
# libjemalloc2 \
|
|
|
|
|
# pkg-config \
|
|
|
|
|
# libtool \
|
|
|
|
|
# libssl-dev && \
|
|
|
|
|
# rm -rf /var/lib/apt/lists/*
|
2023-10-15 16:47:24 -07:00
|
|
|
|
|
|
|
|
ENV LANG=C.UTF-8 \
|
|
|
|
|
BUNDLE_JOBS=4 \
|
|
|
|
|
BUNDLE_RETRY=3
|
|
|
|
|
|
|
|
|
|
WORKDIR /usr/src/app
|
|
|
|
|
|
|
|
|
|
ENTRYPOINT ["./bin/docker-entrypoint-development"]
|
|
|
|
|
|
2025-11-24 08:22:44 -05:00
|
|
|
EXPOSE 3002
|
2023-10-15 16:47:24 -07:00
|
|
|
|
2024-05-30 20:33:19 -07:00
|
|
|
CMD ["./bin/rails", "server"]
|