Sign inSign up

karoid/rails-postgres-ffmpeg

By karoid

•Updated about 1 year ago

rails environment with jemalloc and postgres

Image
Web servers
0

1.7K

karoid/rails-postgres-ffmpeg repository overview

⁠Image Dockerfile

Image that uses jemalloc, postgres-cli, image-optim⁠

# docker buildx create --use
# docker buildx build --platform linux/amd64,linux/arm64 --build-arg RUBY_VERSION=3.1.3 -t karoid/rails-postgres-ffmpeg:3.1.3-bullseye -t karoid/rails-postgres-ffmpeg:latest --push .

ARG RUBY_VERSION="3.1.3"
FROM ruby:$RUBY_VERSION-bullseye as base

RUN apt-get update -qq \
  && apt-get install -y libmad0-dev \
  libid3tag0-dev libsndfile1-dev libgd-dev libboost-filesystem-dev \
  libboost-program-options-dev \
  libboost-regex-dev libjemalloc2 \
  && echo "export LD_PRELOAD=$(find /usr/lib -name libjemalloc.so.2)" > ~/.bashrc

#################
#  Sub Stage 1  #
#################
FROM node:17.6.0-bullseye as builder3
RUN cp -r /usr/local/bin /usr/local/cp-bin \
  && rm /usr/local/cp-bin/corepack /usr/local/cp-bin/docker-entrypoint.sh \
  && apt-get update -qq \
  && apt-get install -y wget tar \
  # pngout
  && wget http://www.jonof.id.au/files/kenutils/pngout-20200115-linux.tar.gz \
  && tar -xvzf pngout-20200115-linux.tar.gz \
  && arch=$(arch | sed s/x86_64/amd64/) \
  && cp pngout-20200115-linux/$arch/pngout /bin/pngout \
  && chmod 755 /bin/pngout \
  && rm -f pngout-20200115-linux.tar.gz \
  && rm -rf pngout-20200115-linux

FROM base as sub1

RUN apt-get install -y postgresql-client libimage-exiftool-perl vim libvips ffmpeg
# yarn
RUN mkdir /usr/local/lib/node_modules /opt/yarn-v1.22.17
COPY --from=builder3 /usr/local/lib/node_modules /usr/local/lib/node_modules
COPY --from=builder3 /opt/yarn-v1.22.17 /opt/yarn-v1.22.17
COPY --from=builder3 /usr/local/cp-bin /usr/local/bin
COPY --from=builder3 /bin/pngout /bin/pngout

RUN apt-get install -y advancecomp gifsicle jhead jpegoptim libjpeg-progs optipng pngcrush pngquant
# svgo
RUN yarn global add svgo
⁠How to use

Use it in your rails project dockerfile
You may change timezone to your region

FROM karoid/rails-postgres-ffmpeg:3.1.3-bullseye as main

# Bundler
WORKDIR /myapp
COPY Gemfile Gemfile.lock /myapp/
RUN bundle config set without test \
  && bundle install \
  && ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

# Add a script to be executed every time the container starts.
COPY ./docker/ruby/entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000

# Configure the main process to run when running the image
CMD ["rails", "server", "-b", "0.0.0.0"]

Tag summary

Content type

Image

Digest

sha256:c5318d426…

Size

688.3 MB

Last updated

about 1 year ago

docker pull karoid/rails-postgres-ffmpeg