forked from openkylin/kylin-code
25 lines
1.4 KiB
Docker
25 lines
1.4 KiB
Docker
# This dockerfile is used to build up from a base image to create an image a cache.tar file containing the results of running "prepare.sh".
|
|
# Other image contents: https://github.com/microsoft/vscode-dev-containers/blob/master/repository-containers/images/github.com/microsoft/vscode/.devcontainer/base.Dockerfile
|
|
|
|
# This first stage generates cache.tar
|
|
FROM mcr.microsoft.com/vscode/devcontainers/repos/microsoft/vscode:dev as cache
|
|
ARG USERNAME=node
|
|
ARG CACHE_FOLDER="/home/${USERNAME}/.devcontainer-cache"
|
|
COPY --chown=${USERNAME}:${USERNAME} . /repo-source-tmp/
|
|
RUN mkdir -p ${CACHE_FOLDER} && chown ${USERNAME} ${CACHE_FOLDER} /repo-source-tmp \
|
|
&& su ${USERNAME} -c "\
|
|
cd /repo-source-tmp \
|
|
&& .devcontainer/cache/before-cache.sh . ${CACHE_FOLDER} \
|
|
&& .devcontainer/prepare.sh . ${CACHE_FOLDER} \
|
|
&& .devcontainer/cache/cache-diff.sh . ${CACHE_FOLDER}"
|
|
|
|
# This second stage starts fresh and just copies in cache.tar from the previous stage. The related
|
|
# devcontainer.json file is then setup to have postCreateCommand fire restore-diff.sh to expand it.
|
|
FROM mcr.microsoft.com/vscode/devcontainers/repos/microsoft/vscode:dev as dev-container
|
|
ARG USERNAME=node
|
|
ARG CACHE_FOLDER="/home/${USERNAME}/.devcontainer-cache"
|
|
RUN mkdir -p "${CACHE_FOLDER}" \
|
|
&& chown "${USERNAME}:${USERNAME}" "${CACHE_FOLDER}" \
|
|
&& su ${USERNAME} -c "git config --global codespaces-theme.hide-status 1"
|
|
COPY --from=cache ${CACHE_FOLDER}/cache.tar ${CACHE_FOLDER}/
|