47 lines
1.4 KiB
Docker
47 lines
1.4 KiB
Docker
|
|
# ----- Build Stage -----
|
||
|
|
# Using a specific Ruby version (e.g., 3.3) for stability
|
||
|
|
ARG RUBY_VERSION=3.3.9
|
||
|
|
FROM docker.io/library/ruby:$RUBY_VERSION-slim as base
|
||
|
|
|
||
|
|
# Install production system 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; \
|
||
|
|
apt-get update -qq \
|
||
|
|
&& apt-get install -yq --no-install-recommends \
|
||
|
|
build-essential \
|
||
|
|
less \
|
||
|
|
git \
|
||
|
|
tdsodbc \
|
||
|
|
freetds-dev \
|
||
|
|
libvips \
|
||
|
|
libpq-dev
|
||
|
|
|
||
|
|
ENV LANG=C.UTF-8 \
|
||
|
|
BUNDLE_JOBS=4 \
|
||
|
|
BUNDLE_RETRY=3
|
||
|
|
|
||
|
|
WORKDIR /usr/src/app
|
||
|
|
|
||
|
|
RUN gem install foreman
|
||
|
|
|
||
|
|
# Copy runtime Ruby dependencies and the precompiled assets from the builder stage
|
||
|
|
# COPY --from=builder /usr/local/bundle /usr/local/bundle
|
||
|
|
# COPY --from=builder /usr/src/app /usr/src/app
|
||
|
|
# COPY --from=watchman_builder /usr/local/bin/watchman /usr/local/bin/watchman
|
||
|
|
# COPY --from=watchman_builder /usr/local/bin/watchman-wait /usr/local/bin/watchman-wait
|
||
|
|
|
||
|
|
# RUN mkdir -p /usr/local/var/run/watchman \
|
||
|
|
# && touch /usr/local/var/run/watchman/.not-empty \
|
||
|
|
# && chmod 2777 /usr/local/var/run/watchman
|
||
|
|
|
||
|
|
# The entrypoint script is a good practice for handling Rails server startup
|
||
|
|
ENTRYPOINT ["./bin/docker-entrypoint-development"]
|
||
|
|
|
||
|
|
# Expose the application port
|
||
|
|
EXPOSE 3002
|
||
|
|
|
||
|
|
# Set the default command to run the Rails server
|
||
|
|
CMD ["./bin/dev"]
|