summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2019-12-18 17:12:43 -0700
committermo khan <mo.khan@gmail.com>2020-01-24 10:57:24 -0700
commitf52d9954ab02ee519009f49a9173d6a6a03f03ae (patch)
tree10c8dd4f7edf465a819655cb74610a04d56c9d77
parente6cd3297543fcd344ed3391ffb5972ba3c3dd635 (diff)
Use multistage build to build gem before installing rubies
-rw-r--r--Dockerfile56
1 files changed, 32 insertions, 24 deletions
diff --git a/Dockerfile b/Dockerfile
index c2aaff8..ec5b6dc 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,21 +1,24 @@
+FROM debian:stable-slim AS gem-builder
+ENV LM_HOME=/opt/license-management
+WORKDIR $LM_HOME
+COPY exe exe/
+COPY lib lib/
+COPY *.gemspec ./
+COPY *.json ./
+COPY *.md ./
+COPY *.yml ./
+RUN apt-get update -q \
+ && apt-get install -y --no-install-recommends ruby \
+ && gem build *.gemspec
+
FROM debian:stable-slim
-ENV LM_HOME=/opt/license-management/
+ENV LM_HOME=/opt/license-management
ENV PATH="${PATH}:/root/.asdf/shims:/root/.asdf/bin"
ENV TERM="xterm"
-COPY config $LM_HOME/config
-RUN ln -sfn $LM_HOME/config/01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc \
- && ln -sfn $LM_HOME/config/02nocache /etc/apt/apt.conf.d/02nocache \
- && ln -sfn $LM_HOME/config/asdfrc $HOME/.asdfrc \
- && ln -sfn $LM_HOME/config/bashrc $HOME/.bashrc \
- && ln -sfn $LM_HOME/config/default-gems $HOME/.default-gems \
- && ln -sfn $LM_HOME/config/default-npm-packages $HOME/.default-npm-packages \
- && ln -sfn $LM_HOME/config/default-python-packages $HOME/.default-python-packages \
- && ln -sfn $LM_HOME/config/gemrc $HOME/.gemrc \
- && ln -sfn $LM_HOME/config/profile $HOME/.profile \
- && ln -sfn $LM_HOME/config/tool-versions $HOME/.tool-versions \
- && ln -sfn $LM_HOME/run.sh /run.sh \
- && ln -sfn $LM_HOME/test /test \
- && apt-get update -q \
+ENV HOME=/root
+COPY config/01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc
+COPY config/02nocache /etc/apt/apt.conf.d/02nocache
+RUN apt-get update -q \
&& apt-get install -y --no-install-recommends \
apt-utils \
apt-transport-https \
@@ -76,7 +79,6 @@ RUN ln -sfn $LM_HOME/config/01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc \
&& rm -fr /var/cache/apt/archives/ \
&& rm -fr /usr/share/doc/ \
&& git clone --depth 1 https://github.com/asdf-vm/asdf.git $HOME/.asdf \
- && asdf plugin-add dotnet-core \
&& asdf plugin-add golang \
&& asdf plugin-add java \
&& asdf plugin-add maven \
@@ -84,13 +86,19 @@ RUN ln -sfn $LM_HOME/config/01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc \
&& asdf plugin-add php https://github.com/mokhan/asdf-php.git \
&& asdf plugin-add python \
&& asdf plugin-add ruby \
- && asdf plugin-add yarn \
&& bash $HOME/.asdf/plugins/nodejs/bin/import-release-team-keyring \
- && cd $HOME \
- && asdf install \
- && asdf current \
- && cd $LM_HOME \
- && gem build *.gemspec \
- && gem install *.gem
-COPY . /opt/license-management/
+ && ln -sfn $LM_HOME/run.sh /run.sh \
+ && ln -sfn $LM_HOME/test /test
+WORKDIR $HOME
+COPY config/asdfrc .asdfrc
+COPY config/bashrc .bashrc
+COPY config/default-gems .default-gems
+COPY config/default-npm-packages .default-npm-packages
+COPY config/default-python-packages .default-python-packages
+COPY config/gemrc .gemrc
+COPY config/profile .profile
+COPY config/tool-versions .tool-versions
+COPY --from=gem-builder /opt/license-management/*.gem $LM_HOME/
+RUN asdf install && asdf current
+COPY . $LM_HOME/
ENTRYPOINT ["/run.sh"]