47 lines
1.2 KiB
Docker
47 lines
1.2 KiB
Docker
ARG RUBY_VERSION=4.0.1
|
|
FROM ruby:${RUBY_VERSION}-slim
|
|
|
|
RUN apt-get update -qq && \
|
|
apt-get install --no-install-recommends -y \
|
|
build-essential \
|
|
libpq-dev \
|
|
libyaml-dev \
|
|
postgresql-client \
|
|
nodejs \
|
|
git \
|
|
curl \
|
|
libjemalloc2 \
|
|
chromium \
|
|
chromium-driver \
|
|
&& rm -rf /var/lib/apt/lists /var/cache/apt/archives
|
|
|
|
RUN ln -s /usr/lib/$(uname -m)-linux-gnu/libjemalloc.so.2 /usr/local/lib/libjemalloc.so
|
|
|
|
# Install AnyCable Go
|
|
RUN ARCH=$(uname -m) && \
|
|
if [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then \
|
|
ANYCABLE_ARCH="arm64"; \
|
|
else \
|
|
ANYCABLE_ARCH="amd64"; \
|
|
fi && \
|
|
curl -L "https://github.com/anycable/anycable-go/releases/download/v1.5.6/anycable-go-linux-${ANYCABLE_ARCH}" -o /usr/local/bin/anycable-go && \
|
|
chmod +x /usr/local/bin/anycable-go
|
|
|
|
ENV RAILS_ENV=development \
|
|
BUNDLE_PATH=/usr/local/bundle \
|
|
RAILS_LOG_TO_STDOUT=true \
|
|
LD_PRELOAD="/usr/local/lib/libjemalloc.so"
|
|
|
|
WORKDIR /rails
|
|
|
|
COPY Gemfile Gemfile.lock* ./
|
|
RUN bundle install && gem install foreman
|
|
|
|
COPY . .
|
|
|
|
RUN chmod +x bin/*
|
|
|
|
ENTRYPOINT ["/rails/bin/docker-entrypoint"]
|
|
EXPOSE 3000
|
|
CMD ["./bin/rails", "server", "-b", "0.0.0.0", "-p", "3000"]
|