Files
baclight/development3.Dockerfile
T

61 lines
1.7 KiB
Docker
Raw Normal View History

2025-11-24 08:22:44 -05:00
# ----- Build Stage -----
# Using a specific Ruby version (e.g., 3.3) for stability
2026-03-03 22:53:21 -05:00
ARG RUBY_VERSION=3.4.8
2026-03-27 08:04:37 -04:00
FROM docker.io/library/ruby:3.4.8-slim as base
2025-11-24 08:22:44 -05:00
# 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 \
libyaml-dev
2025-11-24 08:22:44 -05:00
ENV LANG=C.UTF-8 \
BUNDLE_JOBS=4 \
BUNDLE_RETRY=3
WORKDIR /usr/src/app
RUN gem install foreman
2026-03-27 08:04:37 -04:00
# RUN chmod +x /usr/src/app/bin/jobs
2025-11-24 08:22:44 -05:00
# 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
2026-03-27 08:04:37 -04:00
# COPY . .
# 1. Add bin/jobs script to container
COPY bin/jobs /usr/src/bin/jobs
# 2. Make the script executable
RUN chmod +x /usr/src/bin/jobs
# 3. Set it as the entrypoint
# ENTRYPOINT ["/usr/src/bin/jobs"]
2025-11-24 08:22:44 -05:00
# 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
2026-03-27 08:04:37 -04:00
CMD ["./bin/dev", "bin/jobs start"]