From 069676fb13a11de4bedea002a14dcc1a6d480d8d Mon Sep 17 00:00:00 2001 From: Nick Boldt Date: Wed, 4 Dec 2019 13:21:01 -0500 Subject: [PATCH] CRW-537 reorganize dockerfile steps so we can override patch and post-patch steps, such that generated tarball includes patched theia sources (#571) * CRW-537 if patches applied, tar up the results AFTER patching so we don't have to repatch later. move add+apply patch steps to new builder-patch-theia.dockerfile files; add builder-post-patch.dockerfile too move tarball step from builder-clone-theia to builder-post-patch.dockerfile add 'nothing to do on alpine' markers in empty files add same comment in alpine and ubi8 versions of builder-clone-theia.dockerfile Change-Id: I50c9380b5289d91f5ff7542c553c792572047c15 Signed-off-by: nickboldt * add newline to dockerfiles/theia/docker/ubi8/builder-clone-theia.dockerfile Change-Id: Id95ffd9e2c32155e68a0c236d49c148b77c4c2cf Signed-off-by: nickboldt --- dockerfiles/theia/Dockerfile | 15 +++------------ .../docker/alpine/builder-clone-theia.dockerfile | 1 + .../docker/alpine/builder-patch-theia.dockerfile | 11 +++++++++++ .../docker/alpine/builder-post-clone.dockerfile | 1 + .../docker/alpine/builder-post-patch.dockerfile | 1 + .../docker/ubi8/builder-clone-theia.dockerfile | 4 +--- .../docker/ubi8/builder-patch-theia.dockerfile | 11 +++++++++++ .../docker/ubi8/builder-post-patch.dockerfile | 1 + 8 files changed, 30 insertions(+), 15 deletions(-) create mode 100644 dockerfiles/theia/docker/alpine/builder-patch-theia.dockerfile create mode 100644 dockerfiles/theia/docker/alpine/builder-post-patch.dockerfile create mode 100644 dockerfiles/theia/docker/ubi8/builder-patch-theia.dockerfile create mode 100644 dockerfiles/theia/docker/ubi8/builder-post-patch.dockerfile diff --git a/dockerfiles/theia/Dockerfile b/dockerfiles/theia/Dockerfile index a65ff64a9..0fb06f52a 100644 --- a/dockerfiles/theia/Dockerfile +++ b/dockerfiles/theia/Dockerfile @@ -34,24 +34,15 @@ ADD https://${GITHUB_TOKEN}:x-oauth-basic@api.github.com/repos/${THEIA_GITHUB_RE #{INCLUDE:docker/${BUILD_IMAGE_TARGET}/builder-clone-theia.dockerfile} #{INCLUDE:docker/${BUILD_IMAGE_TARGET}/builder-post-clone.dockerfile} -# Add patches -ADD src/patches ${HOME}/patches - -# Apply patches -RUN if [ -d "${HOME}/patches/${THEIA_VERSION}" ]; then \ - echo "Applying patches for Theia version ${THEIA_VERSION}"; \ - for file in $(find "${HOME}/patches/${THEIA_VERSION}" -name '*.patch'); do \ - echo "Patching with ${file}"; \ - cd ${HOME}/theia-source-code && patch -p1 < ${file}; \ - done \ - fi +# Patch theia +#{INCLUDE:docker/${BUILD_IMAGE_TARGET}/builder-patch-theia.dockerfile} +#{INCLUDE:docker/${BUILD_IMAGE_TARGET}/builder-post-patch.dockerfile} # Generate che-theia ARG CDN_PREFIX="" ARG MONACO_CDN_PREFIX="" WORKDIR ${HOME}/theia-source-code - # Add che-theia repository content COPY asset-che-theia.tar.gz /tmp/asset-che-theia.tar.gz RUN mkdir -p ${HOME}/theia-source-code/che-theia/ && tar xzf /tmp/asset-che-theia.tar.gz -C ${HOME}/theia-source-code/che-theia/ && rm /tmp/asset-che-theia.tar.gz diff --git a/dockerfiles/theia/docker/alpine/builder-clone-theia.dockerfile b/dockerfiles/theia/docker/alpine/builder-clone-theia.dockerfile index f84ddc508..3e6f94859 100644 --- a/dockerfiles/theia/docker/alpine/builder-clone-theia.dockerfile +++ b/dockerfiles/theia/docker/alpine/builder-clone-theia.dockerfile @@ -1 +1,2 @@ +# Clone theia and keep source code in home RUN git clone --branch ${GIT_BRANCH_NAME} --single-branch --depth 1 https://github.com/${THEIA_GITHUB_REPO} ${HOME}/theia-source-code diff --git a/dockerfiles/theia/docker/alpine/builder-patch-theia.dockerfile b/dockerfiles/theia/docker/alpine/builder-patch-theia.dockerfile new file mode 100644 index 000000000..1c9a323a9 --- /dev/null +++ b/dockerfiles/theia/docker/alpine/builder-patch-theia.dockerfile @@ -0,0 +1,11 @@ +# Add patches +ADD src/patches ${HOME}/patches + +# Apply patches +RUN if [ -d "${HOME}/patches/${THEIA_VERSION}" ]; then \ + echo "Applying patches for Theia version ${THEIA_VERSION}"; \ + for file in $(find "${HOME}/patches/${THEIA_VERSION}" -name '*.patch'); do \ + echo "Patching with ${file}"; \ + cd ${HOME}/theia-source-code && patch -p1 < ${file}; \ + done \ + fi diff --git a/dockerfiles/theia/docker/alpine/builder-post-clone.dockerfile b/dockerfiles/theia/docker/alpine/builder-post-clone.dockerfile index e69de29bb..893dc75ad 100644 --- a/dockerfiles/theia/docker/alpine/builder-post-clone.dockerfile +++ b/dockerfiles/theia/docker/alpine/builder-post-clone.dockerfile @@ -0,0 +1 @@ +# nothing to do on alpine diff --git a/dockerfiles/theia/docker/alpine/builder-post-patch.dockerfile b/dockerfiles/theia/docker/alpine/builder-post-patch.dockerfile new file mode 100644 index 000000000..893dc75ad --- /dev/null +++ b/dockerfiles/theia/docker/alpine/builder-post-patch.dockerfile @@ -0,0 +1 @@ +# nothing to do on alpine diff --git a/dockerfiles/theia/docker/ubi8/builder-clone-theia.dockerfile b/dockerfiles/theia/docker/ubi8/builder-clone-theia.dockerfile index 3333b747f..3e6f94859 100644 --- a/dockerfiles/theia/docker/ubi8/builder-clone-theia.dockerfile +++ b/dockerfiles/theia/docker/ubi8/builder-clone-theia.dockerfile @@ -1,4 +1,2 @@ # Clone theia and keep source code in home -RUN git clone --branch ${GIT_BRANCH_NAME} --single-branch --depth 1 https://github.com/${THEIA_GITHUB_REPO} ${HOME}/theia-source-code \ - && cd ${HOME} && tar zcf ${HOME}/theia-source-code.tgz theia-source-code - +RUN git clone --branch ${GIT_BRANCH_NAME} --single-branch --depth 1 https://github.com/${THEIA_GITHUB_REPO} ${HOME}/theia-source-code diff --git a/dockerfiles/theia/docker/ubi8/builder-patch-theia.dockerfile b/dockerfiles/theia/docker/ubi8/builder-patch-theia.dockerfile new file mode 100644 index 000000000..1c9a323a9 --- /dev/null +++ b/dockerfiles/theia/docker/ubi8/builder-patch-theia.dockerfile @@ -0,0 +1,11 @@ +# Add patches +ADD src/patches ${HOME}/patches + +# Apply patches +RUN if [ -d "${HOME}/patches/${THEIA_VERSION}" ]; then \ + echo "Applying patches for Theia version ${THEIA_VERSION}"; \ + for file in $(find "${HOME}/patches/${THEIA_VERSION}" -name '*.patch'); do \ + echo "Patching with ${file}"; \ + cd ${HOME}/theia-source-code && patch -p1 < ${file}; \ + done \ + fi diff --git a/dockerfiles/theia/docker/ubi8/builder-post-patch.dockerfile b/dockerfiles/theia/docker/ubi8/builder-post-patch.dockerfile new file mode 100644 index 000000000..32a605fbd --- /dev/null +++ b/dockerfiles/theia/docker/ubi8/builder-post-patch.dockerfile @@ -0,0 +1 @@ +RUN cd ${HOME} && tar zcf ${HOME}/theia-source-code.tgz theia-source-code