This commit is contained in:
parent
8d1fa48e7a
commit
d2a6ac4e1d
4 changed files with 18 additions and 34 deletions
|
@ -11,9 +11,10 @@ ENV HTTP_BASIC_PASSWORD=gibberish
|
||||||
ENV NOKOGIRI_USE_SYSTEM_LIBRARIES=1
|
ENV NOKOGIRI_USE_SYSTEM_LIBRARIES=1
|
||||||
ENV EXTRA_PKGS=''
|
ENV EXTRA_PKGS=''
|
||||||
|
|
||||||
|
RUN id
|
||||||
RUN gem install --no-user-install --no-document --source https://rubygems.org geminabox mini_portile2 gem-compiler
|
RUN gem install --no-user-install --no-document --source https://rubygems.org geminabox mini_portile2 gem-compiler
|
||||||
|
|
||||||
COPY ./gemcompiler.sh /usr/local/bin/gemcompiler
|
COPY ./gem-compiler.sh /usr/local/bin/gem-compiler
|
||||||
COPY ./bootstrap.sh /usr/local/bin/bootstrap
|
COPY ./bootstrap.sh /usr/local/bin/bootstrap
|
||||||
|
|
||||||
RUN install -dm 2750 -o builder -g builder /srv/gems
|
RUN install -dm 2750 -o builder -g builder /srv/gems
|
||||||
|
@ -21,4 +22,4 @@ VOLUME /srv/gems
|
||||||
|
|
||||||
RUN apk add --no-cache su-exec file-dev libssh2-dev libc6-compat libstdc++
|
RUN apk add --no-cache su-exec file-dev libssh2-dev libc6-compat libstdc++
|
||||||
|
|
||||||
ENTRYPOINT /usr/local/bin/bootstrap
|
ENTRYPOINT /bin/sh
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
set -e
|
set -e
|
||||||
set -x
|
|
||||||
|
|
||||||
test -n "${EXTRA_PKGS}" && apk add --no-cache ${EXTRA_PKGS}
|
test -n "${EXTRA_PKGS}" && apk add --no-cache ${EXTRA_PKGS}
|
||||||
|
|
||||||
su-exec builder /usr/local/bin/gemcompiler
|
su-exec builder /usr/local/bin/gem-compiler
|
||||||
|
|
14
gem-compiler.sh
Executable file
14
gem-compiler.sh
Executable file
|
@ -0,0 +1,14 @@
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
test -n "${GEM_NAME}"
|
||||||
|
test -n "${GEM_VERSION}"
|
||||||
|
test -n "${HTTP_BASIC_USER}"
|
||||||
|
test -n "${HTTP_BASIC_PASSWORD}"
|
||||||
|
test -n "${SUTTY}"
|
||||||
|
test -n "${PLATFORM}"
|
||||||
|
|
||||||
|
# TODO: Support multiple Alpine/Ruby versions
|
||||||
|
gem fetch --source=https://gems.${SUTTY} --platform=ruby --version ${VERSION} ${GEM}
|
||||||
|
gem compile -V --prune --strip "strip --strip-unneeded" "${GEM}-${VERSION}.gem"
|
||||||
|
gem inabox -o "${GEM}-${VERSION}-${PLATFORM}.gem" --host https://${HTTP_BASIC_USER}:${HTTP_BASIC_PASSWORD}@gems.${SUTTY}
|
|
@ -1,30 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# CCache
|
|
||||||
export PATH=/usr/lib/ccache/bin:$PATH
|
|
||||||
|
|
||||||
source /etc/os-release
|
|
||||||
alpine_version="${VERSION_ID%.*}"
|
|
||||||
platform="`ruby -e "puts RbConfig::CONFIG['arch']"`"
|
|
||||||
gems_dir="${GEMS_DIR:-/srv/gems}"
|
|
||||||
cache_dir="${gems_dir}/cache"
|
|
||||||
release_dir="${RELEASE_DIR:-${gems_dir}/${alpine_version}}"
|
|
||||||
|
|
||||||
mkdir -p "${cache_dir}" "${release_dir}"
|
|
||||||
|
|
||||||
gem="${GEM}-${VERSION}.gem"
|
|
||||||
release="${GEM}-${VERSION}-${platform}.gem"
|
|
||||||
|
|
||||||
if ! test -f "${cache_dir}/${gem}" ; then
|
|
||||||
cd "${cache_dir}"
|
|
||||||
gem fetch --source=https://gems.${SUTTY} --platform=ruby --version ${VERSION} ${GEM}
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! test -f "${release_dir}/${release}"; then
|
|
||||||
cd "${release_dir}"
|
|
||||||
gem compile -V --prune --strip "strip --strip-unneeded" "${cache_dir}/${gem}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
test -f "${release_dir}/${release}" \
|
|
||||||
&& gem inabox -o "${release_dir}/${release}" --host https://${HTTP_BASIC_USER}:${HTTP_BASIC_PASSWORD}@gems.${SUTTY}
|
|
Loading…
Reference in a new issue