82 lines
2.4 KiB
Docker
82 lines
2.4 KiB
Docker
FROM ruby:3.2.0 AS native-gems
|
|
RUN rm -f /etc/apt/apt.conf.d/docker-clean; \
|
|
echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
|
|
RUN \
|
|
--mount=type=cache,target=/var/cache/apt,sharing=locked \
|
|
--mount=type=cache,target=/var/lib/apt,sharing=locked \
|
|
apt-get update && \
|
|
apt-get install --no-install-recommends --no-install-suggests -y \
|
|
cmake
|
|
|
|
WORKDIR /usr/src/app
|
|
RUN gem install bundler -v '2.4.5'
|
|
COPY gems gems
|
|
WORKDIR /usr/src/app/gems/xdiff-rb
|
|
RUN bundle install
|
|
RUN rake compile
|
|
WORKDIR /usr/src/app/gems/rb-bsdiff
|
|
RUN bundle install
|
|
RUN rake compile
|
|
|
|
# Primary image
|
|
FROM mcr.microsoft.com/devcontainers/ruby:1-3.2-bookworm
|
|
|
|
# apt caching & install packages
|
|
RUN rm -f /etc/apt/apt.conf.d/docker-clean; \
|
|
echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
|
|
RUN \
|
|
--mount=type=cache,target=/var/cache/apt,sharing=locked \
|
|
--mount=type=cache,target=/var/lib/apt,sharing=locked \
|
|
apt-get update && \
|
|
apt-get install --no-install-recommends --no-install-suggests -y \
|
|
autoconf \
|
|
build-essential \
|
|
ca-certificates \
|
|
curl \
|
|
gnupg \
|
|
libblas-dev \
|
|
libdb-dev \
|
|
libffi-dev \
|
|
libgdbm-dev \
|
|
libgdbm6 \
|
|
libgmp-dev \
|
|
liblapack-dev \
|
|
libncurses5-dev \
|
|
libpq-dev \
|
|
libreadline6-dev \
|
|
libssl-dev \
|
|
libvips42 \
|
|
libyaml-dev \
|
|
patch \
|
|
# rbenv \
|
|
iputils-ping \
|
|
rustc \
|
|
uuid-dev \
|
|
zlib1g-dev
|
|
|
|
# USER vscode
|
|
# ENV PATH=/home/vscode/.rbenv/shims:$PATH
|
|
# ENV CONFIGURE_OPTS="--disable-install-rdoc"
|
|
|
|
# RUN git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
|
|
# RUN rbenv install 3.2.0
|
|
# RUN rbenv global 3.2.0
|
|
|
|
COPY --from=native-gems /usr/src/app/gems/xdiff-rb /gems/xdiff-rb
|
|
COPY --from=native-gems /usr/src/app/gems/rb-bsdiff /gems/rb-bsdiff
|
|
|
|
ENV RAILS_ENV development
|
|
|
|
# [Optional] Uncomment this line to install additional gems.
|
|
RUN su vscode -c "gem install bundler -v '2.4.1'" && \
|
|
su vscode -c "gem install rake -v '13.0.6'" && \
|
|
su vscode -c "gem install ruby-lsp -v '0.22.1'" && \
|
|
su vscode -c "gem install rubocop -v '1.69.2'"
|
|
|
|
# install exo
|
|
RUN su vscode -c "curl -sL https://exo.deref.io/install | bash"
|
|
ENV PATH "/home/vscode/.exo/bin:$PATH"
|
|
|
|
RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && nvm install 18 && nvm use 18 && npm install -g yarn" 2>&1
|
|
ENV PATH /usr/local/share/nvm/current/bin:$PATH
|