Add Dev Container Configuration Files (#7)
This commit is contained in:
68
.devcontainer/Julia.Dockerfile
Normal file
68
.devcontainer/Julia.Dockerfile
Normal file
@@ -0,0 +1,68 @@
|
||||
ARG BUILD_ON_IMAGE=glcr.b-data.ch/julia/base
|
||||
ARG JULIA_VERSION=latest
|
||||
|
||||
FROM ${BUILD_ON_IMAGE}:${JULIA_VERSION} as files
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||
|
||||
RUN mkdir /files
|
||||
|
||||
COPY julia-base/conf/user /files
|
||||
COPY julia-base/scripts /files
|
||||
|
||||
## Ensure file modes are correct when using CI
|
||||
## Otherwise set to 777 in the target image
|
||||
RUN find /files -type d -exec chmod 755 {} \; \
|
||||
&& find /files -type f -exec chmod 644 {} \; \
|
||||
&& find /files/usr/local/bin -type f -exec chmod 755 {} \;
|
||||
|
||||
FROM ${BUILD_ON_IMAGE}:${JULIA_VERSION}
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
## Update environment
|
||||
ARG USE_ZSH_FOR_ROOT
|
||||
ARG SET_LANG
|
||||
ARG SET_TZ
|
||||
|
||||
ENV LANG=${SET_LANG:-$LANG} \
|
||||
TZ=${SET_TZ:-$TZ} \
|
||||
PARENT_IMAGE_BUILD_DATE=${BUILD_DATE}
|
||||
|
||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||
|
||||
## Change root's shell to ZSH
|
||||
RUN if [ ! -z "$USE_ZSH_FOR_ROOT" ]; then \
|
||||
chsh -s /bin/zsh; \
|
||||
fi \
|
||||
## Update timezone if needed
|
||||
&& if [ "$TZ" != "Etc/UTC" ]; then \
|
||||
echo "Setting TZ to $TZ"; \
|
||||
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \
|
||||
&& echo $TZ > /etc/timezone; \
|
||||
fi \
|
||||
## Add/Update locale if needed
|
||||
&& if [ "$LANG" != "en_US.UTF-8" ]; then \
|
||||
sed -i "s/# $LANG/$LANG/g" /etc/locale.gen; \
|
||||
locale-gen; \
|
||||
echo "Setting LANG to $LANG"; \
|
||||
update-locale --reset LANG=$LANG; \
|
||||
fi \
|
||||
## Allow updating pre-installed Julia packages
|
||||
## Make sure $JULIA_PATH/local/share/julia/registries/* is deleted
|
||||
&& rm -rf ${JULIA_PATH}/local/share/julia/registries/*
|
||||
|
||||
## Pip: Install to the Python user install directory (1) or not (0)
|
||||
ARG PIP_USER=1
|
||||
|
||||
ENV PIP_USER=${PIP_USER}
|
||||
|
||||
## Copy files as late as possible to avoid cache busting
|
||||
COPY --from=files /files /
|
||||
|
||||
## Reset environment variable BUILD_DATE
|
||||
ARG BUILD_START
|
||||
|
||||
ENV BUILD_DATE=${BUILD_START}
|
||||
Reference in New Issue
Block a user