From d5ee877fd84712fe576258730f1b79ca27596935 Mon Sep 17 00:00:00 2001 From: Yudong Jin Date: Wed, 8 Nov 2023 03:20:29 +0800 Subject: [PATCH] feat: Add Docker for code debugging (#927) * Update Dockerfile and docker-compose.yml * Add Dockerfile for code debugging. Add installation procedures of python, cpp and java. --- Dockerfile | 13 +++++++------ codes/Dockerfile | 33 +++++++++++++++++++++++++++++++++ codes/docker-compose.yml | 8 ++++++++ docker-compose.yml | 2 ++ 4 files changed, 50 insertions(+), 6 deletions(-) create mode 100644 codes/Dockerfile create mode 100644 codes/docker-compose.yml diff --git a/Dockerfile b/Dockerfile index 9febad0b6..6c13f7e51 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,14 @@ FROM python:3.9.0-alpine -RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip -RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple mkdocs-material==9.4.1 mkdocs-glightbox +ENV PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple +RUN pip install --upgrade pip +RUN pip install mkdocs-material==9.4.1 mkdocs-glightbox -WORKDIR /app +WORKDIR /hello-algo -COPY docs /app/build/docs -COPY overrides /app/build/overrides -COPY mkdocs.yml /app/mkdocs.yml +COPY docs ./build/docs +COPY overrides ./build/overrides +COPY mkdocs.yml ./mkdocs.yml RUN mkdocs build diff --git a/codes/Dockerfile b/codes/Dockerfile new file mode 100644 index 000000000..401da5d28 --- /dev/null +++ b/codes/Dockerfile @@ -0,0 +1,33 @@ +FROM ubuntu:latest + +# Use Ubuntu image from Aliyun +RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list && \ + sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list && \ + sed -i 's/ports.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list + +RUN apt-get update + +# 设置需要安装的语言,使用空格隔开 +# Set the languages to be installed, separated by spaces +ARG LANGS="python cpp" + +# Available languages:python cpp java +RUN for LANG in $LANGS; do \ + case "$LANG" in \ + python) \ + apt-get install -y python3.10 && \ + update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1 ;; \ + cpp) \ + apt-get install -y g++ gdb ;; \ + java) \ + apt-get install -y openjdk-17-jdk ;; \ + # More languages... + *) \ + echo "Warning: No installation workflow for $LANG" ;; \ + esac \ + done + +WORKDIR /codes +COPY ./ ./ + +CMD ["/bin/bash"] diff --git a/codes/docker-compose.yml b/codes/docker-compose.yml new file mode 100644 index 000000000..ccfde7ee3 --- /dev/null +++ b/codes/docker-compose.yml @@ -0,0 +1,8 @@ +version: '3.8' +services: + hello-algo-code: + build: . + image: hello-algo-code + container_name: hello-algo-code + stdin_open: true + tty: true diff --git a/docker-compose.yml b/docker-compose.yml index 0deceaa1b..d0c43a9f5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,5 +2,7 @@ version: '3' services: hello-algo: build: . + image: hello-algo + container_name: hello-algo ports: - "8000:8000"