diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c37e4e00ba2e9f46f2b5da88441f0b61e07c25f3..315f17234224192295f07355b3f4bd8055f23f7f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,6 +6,8 @@ stages: build_docker: stage: build retry: 2 + tags: + - linux only: refs: - master @@ -14,3 +16,17 @@ build_docker: - docker build -f docker/Dockerfile -t $CI_REGISTRY/$CI_PROJECT_PATH:latest . - docker container prune - docker push $CI_REGISTRY/$CI_PROJECT_PATH:latest + +build_docker_full: + stage: build + retry: 2 + tags: + - linux + only: + refs: + - master + script: + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker build -f docker/Dockerfile_full -t $CI_REGISTRY/$CI_PROJECT_PATH:full . + - docker container prune + - docker push $CI_REGISTRY/$CI_PROJECT_PATH:full diff --git a/docker/Dockerfile b/docker/Dockerfile index 89f3102604d7a0fde4f1af5d5eed6f6449ada03d..d3efcaf193513c90378918e9a9c72f2b6c8cd4a2 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -19,4 +19,4 @@ SHELL ["/bin/bash", "-c"] # The code to run when container is started: # Using informations from https://hub.docker.com/r/continuumio/miniconda3 and options used by Vicente in former Docker file based on Ubuntu. -ENTRYPOINT [ "conda", "run", "--no-capture-output", "-n", "training_cpp_2021", "jupyter", "lab", "--port=8888", "--ip=0.0.0.0", "--no-browser","--allow-root","--NotebookApp.token=''"] \ No newline at end of file +ENTRYPOINT [ "conda", "run", "--no-capture-output", "-n", "training_cpp_2021", "jupyter", "lab", "--port=8888", "--ip=0.0.0.0", "--no-browser","--allow-root","--NotebookApp.token=''"] diff --git a/docker/Dockerfile_full b/docker/Dockerfile_full new file mode 100644 index 0000000000000000000000000000000000000000..931ed284e2bca466882f605f399f67b5aa8c1097 --- /dev/null +++ b/docker/Dockerfile_full @@ -0,0 +1,55 @@ +# Each instruction in this file generates a new layer that gets pushed to your local image cache + +# Lines preceeded by # are regarded as comments and ignored + +# The line below states we will base our new image on the Latest Official Ubuntu +FROM ubuntu:latest + +# Identify the maintainer of an image +LABEL maintainer="vicente.mataix-ferrandiz@inria.fr" + +ENV DEBIAN_FRONTEND=noninteractive +RUN apt-get -y clean +RUN apt-get -y update +RUN apt-get -y upgrade +RUN apt-get install -y \ + nano \ + bash \ + wget \ + curl \ + git \ + cmake \ + build-essential && \ + apt-get autoremove -y +RUN apt-get -y clean + +# Creation of a "non-root" user +ENV USER "formation" +RUN useradd --create-home ${USER} +USER ${USER} + +# Default working directory is +WORKDIR /home/${USER} +RUN curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh +RUN bash Miniconda3-latest-Linux-x86_64.sh -b +RUN rm -rf Miniconda3-latest-Linux-x86_64.sh + +# Changing to home +WORKDIR /home/${USER} +RUN git clone https://gitlab.inria.fr/formations/cpp/gettingstartedwithmoderncpp.git + +# Change the default shell to be bash +SHELL ["/bin/bash", "-c"] + +# Conda environment +WORKDIR /home/${USER}/gettingstartedwithmoderncpp +RUN /home/${USER}/miniconda3/bin/conda env create -f environment.yml +RUN /home/${USER}/miniconda3/bin/conda init bash +RUN source /home/${USER}/miniconda3/etc/profile.d/conda.sh +RUN /home/${USER}/miniconda3/bin/conda clean -a + +# Add to the bashrc +RUN echo "alias python=\"python3\"" >> ~/.bashrc +RUN echo "conda activate training_cpp_2021" >> ~/.bashrc +RUN source ~/.bashrc +CMD ["/home/formation/miniconda3/bin/conda", "run", "--no-capture-output", "-n", "training_cpp_2021", "jupyter", "lab", "--port=8888", "--no-browser", "--ip=0.0.0.0", "--allow-root","--NotebookApp.token=''"]