Implement Jekyll CI workflow with docker (#2)
Part of #1 Reviewed-on: https://code.lafs.eval.latfa.net/tahoe-lafs/web-landing-page/pulls/2 Co-authored-by: Benoit Donneaux <benoit@leastauthority.com> Co-committed-by: Benoit Donneaux <benoit@leastauthority.com>
This commit is contained in:
parent
6716049676
commit
097fc8acc6
3 changed files with 62 additions and 14 deletions
|
@ -10,14 +10,15 @@ RUN INSTALL_PKGS="gcc g++ libyaml-dev make nodejs" && \
|
|||
|
||||
# Parameters for default user:group
|
||||
ARG uid=1000
|
||||
ARG user=ubuntu
|
||||
ARG user=appuser
|
||||
ARG gid=1000
|
||||
ARG group=ubuntu
|
||||
ARG group=appgroup
|
||||
|
||||
# Add or modify user and group for build and runtime (convenient)
|
||||
#RUN id ${user} > /dev/null 2>&1 && \
|
||||
# { groupmod -g "${gid}" "${group}" && usermod -md /home/${user} -s /bin/bash -g "${group}" -u "${uid}" "${user}"; } || \
|
||||
# { groupadd -g "${gid}" "${group}" && useradd -md /home/${user} -s /bin/bash -g "${group}" -u "${uid}" "${user}"; }
|
||||
# Ensure desired user and group for build and runtime (convenient)
|
||||
RUN userdel --force --remove $(getent passwd ${uid} | cut -d: -f1) || true; \
|
||||
groupdel $(getent group ${gid} | cut -d: -f1) || true; \
|
||||
groupadd -g "${gid}" "${group}" && \
|
||||
useradd -md /home/${user} -s /bin/bash -g "${group}" -u "${uid}" "${user}";
|
||||
|
||||
# Copy requirements in non-root user home directory
|
||||
COPY Gemfile Gemfile.lock "/home/${user}/"
|
||||
|
@ -25,17 +26,18 @@ RUN chown "${user}:${group}" "/home/${user}/Gemfile"*
|
|||
|
||||
# Switch to non-root user
|
||||
USER ${user}
|
||||
WORKDIR /home/${user}
|
||||
WORKDIR /appdata
|
||||
|
||||
# Install required gems
|
||||
RUN echo "gem: --no-document --user-install --bindir /home/${user}/bin" >> /home/${user}/.gemrc && \
|
||||
echo "gempath: /home/${user}/.gem/ruby:/home/${user}/.bundle/gems/ruby/3.3.0" >> .gemrc && \
|
||||
gem install bundler --version `sed -n -r -e '/BUNDLED WITH/,$ { s/\s+([.0-9]+)/\1/ p }' Gemfile.lock` && \
|
||||
echo "gempath: /home/${user}/.gem/ruby:/home/${user}/.bundle/gems/ruby/3.3.0" >> /home/${user}/.gemrc && \
|
||||
gem install bundler --version `sed -n -r -e '/BUNDLED WITH/,$ { s/\s+([.0-9]+)/\1/ p }' /home/${user}/Gemfile.lock` && \
|
||||
bundle config --global path /home/${user}/.bundle/gems && \
|
||||
bundle config --global bin /home/${user}/bin && \
|
||||
bundle install && \
|
||||
bundle install --gemfile=/home/${user}/Gemfile && \
|
||||
rm -rf /home/${user}/.bundle/cache
|
||||
|
||||
ENV PATH=/home/${user}/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||
|
||||
CMD [ 'jekyll', 's', 'source', './src', '--verbose', '--host 0.0.0.0', '--incremental' ]
|
||||
ENTRYPOINT ["jekyll"]
|
||||
CMD ["server", "--verbose", "--host", "0.0.0.0", "--incremental"]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue