houdini/docker/build/Dockerfile

51 lines
3 KiB
Docker

# syntax=docker/dockerfile:1
FROM bullseye-base
COPY script/build/debian/prebuild.sh houdini/script/build/debian/prebuild.sh
RUN houdini/script/build/debian/prebuild.sh
# Use NodeSource for installation of Node 14.x
COPY --chown=root:root docker/data/nodesource.list /etc/apt/sources.list.d/nodesource.list
COPY --chown=root:root docker/data/nodesource.gpg.key /usr/share/keyrings/nodesource.gpg.key
RUN gpg --dearmor < /usr/share/keyrings/nodesource.gpg.key > /usr/share/keyrings/nodesource.gpg
RUN rm -f /usr/share/keyrings/nodesource.gpg.key
RUN chown root.root /usr/share/keyrings/nodesource.gpg
RUN chmod 644 /usr/share/keyrings/nodesource.gpg
# Use yarnkpkg for installation of Yarn
COPY --chown=root:root docker/data/yarn.list /etc/apt/sources.list.d/yarn.list
RUN chmod 644 /etc/apt/sources.list.d/yarn.list
COPY --chown=root:root docker/data/yarnpkg.gpg.key /usr/share/keyrings/yarnpkg.gpg.key
RUN gpg --dearmor < /usr/share/keyrings/yarnpkg.gpg.key > /usr/share/keyrings/yarnpkg.gpg
RUN rm -f /usr/share/keyrings/yarnpkg.gpg.key
RUN chown root.root /usr/share/keyrings/yarnpkg.gpg
RUN chmod 644 /usr/share/keyrings/yarnpkg.gpg
# Run script to put keys in place and install
COPY --chown=root:root script/build/debian/node.sh houdini/script/build/debian/node.sh
RUN houdini/script/build/debian/node.sh
# Switch to houdini user, rest of file run in as that user after created
RUN /sbin/useradd --home-dir /houdini --create-home --shell /bin/bash houdini
RUN chown -R houdini.houdini /houdini
USER houdini
# Install RVM 1.29.12
COPY --chown=houdini:houdini docker/data/rvm-mpapis.gpg.key /houdini/keys-for-rvm/rvm-mpapis.gpg.key
RUN gpg --import /houdini/keys-for-rvm/rvm-mpapis.gpg.key
COPY --chown=houdini:houdini docker/data/pkuczynski.gpg.key /houdini/keys-for-rvm/pkuczynski.gpg.key
RUN gpg --import /houdini/keys-for-rvm/pkuczynski.gpg.key
RUN curl --fail --location --max-redirs 10 --connect-timeout 30 --retry-delay 2 --retry 3 -sS --create-dirs --output /houdini/.rvm/archives/rvm-1.29.12.tgz https://github.com/rvm/rvm/archive/1.29.12.tar.gz
RUN curl --fail --location --max-redirs 10 --connect-timeout 30 --retry-delay 2 --retry 3 -sS --create-dirs --output /houdini/.rvm/archives/rvm-1.29.12.tgz.asc https://github.com/rvm/rvm/releases/download/1.29.12/1.29.12.tar.gz.asc
RUN gpg /houdini/.rvm/archives/rvm-1.29.12.tgz.asc
RUN mkdir -p /houdini/.rvm/src/rvm
RUN cd /houdini/.rvm/src/rvm && tar xzf /houdini/.rvm/archives/rvm-1.29.12.tgz --no-same-owner --strip-components 1
RUN cd /houdini/.rvm/src/rvm && ./scripts/install --path /houdini/.rvm
ENV PATH="$PATH:/houdini/.rvm/bin"
RUN echo 'source "/houdini/.rvm/scripts/rvm"' >> ~/.bashrc
RUN rvm autolibs disable
RUN rvm requirements
RUN rvm install 2.7.3 --disable-binary --with-jemalloc
# COPY script/build/debian/postgres.sh houdini/script/build/debian/postgres.sh
# RUN houdini/script/build/debian/postgres.sh
# COPY gems /houdini/gems/
# WORKDIR /houdini
# COPY Gemfile /houdini/Gemfile
# COPY Gemfile.lock /houdini/Gemfile.lock
# RUN gem install bundler -v "~>1.0"
# RUN bundle install
# CMD rake -T