From aca5f52bc26d1681cb9cb0b2df47cd28d66cef5e Mon Sep 17 00:00:00 2001 From: enoch Date: Sat, 3 May 2025 15:29:58 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20=E6=B7=BB=E5=8A=A0=E5=A4=9A?= =?UTF-8?q?=E4=B8=AA=E5=BC=80=E5=8F=91=E7=8E=AF=E5=A2=83=E7=9A=84=20Docker?= =?UTF-8?q?=20=E9=85=8D=E7=BD=AE=EF=BC=8C=E5=8C=85=E6=8B=AC=20Debian?= =?UTF-8?q?=E3=80=81Maven=E3=80=81LaTeX=20=E5=92=8C=20Rust=EF=BC=8C?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E6=97=A7=E7=9A=84=20Rust=20=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- general-devcontainer/Containerfile | 34 +++++++++++++++++++ general-devcontainer/compose.yaml | 16 +++++++++ general-devcontainer/launch.sh | 27 +++++++++++++++ general-devcontainer/start-ssh.sh | 7 ++++ .../Containerfile | 0 .../compose.yaml | 10 ++---- .../Containerfile | 0 .../compose.yaml | 4 +-- rust-dev-env/compose.yaml | 9 ----- {rust-dev-env => rust}/Containerfile | 0 rust/compose.yaml | 13 +++++++ 11 files changed, 101 insertions(+), 19 deletions(-) create mode 100644 general-devcontainer/Containerfile create mode 100644 general-devcontainer/compose.yaml create mode 100644 general-devcontainer/launch.sh create mode 100644 general-devcontainer/start-ssh.sh rename {java-container-dev-env => java-maven}/Containerfile (100%) rename {java-container-dev-env => java-maven}/compose.yaml (55%) rename {latex-workspace-container => latex}/Containerfile (100%) rename {latex-workspace-container => latex}/compose.yaml (93%) delete mode 100644 rust-dev-env/compose.yaml rename {rust-dev-env => rust}/Containerfile (100%) create mode 100644 rust/compose.yaml diff --git a/general-devcontainer/Containerfile b/general-devcontainer/Containerfile new file mode 100644 index 0000000..7c92eca --- /dev/null +++ b/general-devcontainer/Containerfile @@ -0,0 +1,34 @@ +FROM docker.io/library/debian:12 +LABEL maintainer="clzhao98@outlook.com" +RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources +RUN apt-get update && apt-get install -y \ + openssh-server build-essential cmake ninja-build\ + git vim-nox curl jq ripgrep bash-completion wget python3&& \ + apt-get clean &&\ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +ENV http_proxy="socks5://10.177.21.228:10808" +ENV https_proxy="socks5://10.177.21.228:10808" +ENV no_proxy="localhost, 127.0.0.1, .example.com" + + +LABEL description="Basic image for develop on debian12" +LABEL version="1.0" +EXPOSE 1922 80 9000 + + +## 配置 ssh 服务 +RUN mkdir /var/run/sshd +RUN echo "Port 1922" >> /etc/ssh/sshd_config +RUN echo "RSAAuthentication yes" >> /etc/ssh/sshd_config +RUN echo "root:art@319" | chpasswd \ + && sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config \ + && sed -i 's/^#\(PermitRootLogin.*\)/\1/' /etc/ssh/sshd_config + + +ADD start-ssh.sh /start-ssh.sh +WORKDIR /workspace + +CMD ["/start-ssh.sh"] +#CMD ["service", "ssh", "start" ] +#CMD ["/usr/sbin/sshd", "-D", "-p", "1922"] diff --git a/general-devcontainer/compose.yaml b/general-devcontainer/compose.yaml new file mode 100644 index 0000000..02a3a1e --- /dev/null +++ b/general-devcontainer/compose.yaml @@ -0,0 +1,16 @@ +services: + general-debian-dev: + image: general-debian-dev:latest + build: + context: . + dockerfile: Containerfile + container_name: general-debian-dev + hostname: general-devcontainer + restart: unless-stopped + ports: + - "9090:9090" + volumes: + - /workspace/projects/:/projects + - /workspace:/workspace + - /workspace/devcontainer-vols/general-debian-dev-root:/root + diff --git a/general-devcontainer/launch.sh b/general-devcontainer/launch.sh new file mode 100644 index 0000000..2952ce0 --- /dev/null +++ b/general-devcontainer/launch.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +function show_help() { + echo "用法: $0 <容器名称> <工作空间路径>" + echo + echo "参数:" + echo " <容器名称> 容器的名称" + echo " <工作空间路径> 工作空间的路径" + exit 1 +} + +# 参数检查 +if [ -z "$1" ] || [ -z "$2" ]; then + echo "错误: 缺少必要的参数。" + show_help +fi + +container_name=$1 +worksapce_path=$2 +basic_volume_map="-v /workspace/shared-root:/root" +basic_port_map="-p 10122:1922" +base_cmd="docker run -itd --name ${container_name} --hostname ${container_name} ${basic_port_map} ${basic_volume_map}" +image_name="dev-workspace:v2" +volume_map="" + +cmd="$base_cmd $volume_map $image_name" +echo ">>> $cmd" +$cmd diff --git a/general-devcontainer/start-ssh.sh b/general-devcontainer/start-ssh.sh new file mode 100644 index 0000000..f91a6e5 --- /dev/null +++ b/general-devcontainer/start-ssh.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +LOGTIME=$(date "+%Y-%m-%d %H:%M:%S") +echo "[$LOGTIME] startup run..." >>/root/start_ssh.log +service ssh start >>/root/start_ssh.log +#service mysql start >>/root/star_mysql.lo +bash diff --git a/java-container-dev-env/Containerfile b/java-maven/Containerfile similarity index 100% rename from java-container-dev-env/Containerfile rename to java-maven/Containerfile diff --git a/java-container-dev-env/compose.yaml b/java-maven/compose.yaml similarity index 55% rename from java-container-dev-env/compose.yaml rename to java-maven/compose.yaml index b7e7ecb..90a40ef 100644 --- a/java-container-dev-env/compose.yaml +++ b/java-maven/compose.yaml @@ -1,19 +1,15 @@ -version: '3' - services: maven-dev-env: image: maven-java21-dev:3.9 build: context: . dockerfile: Containerfile - container_name: maven-dev-env + container_name: maven-devcontainer + hostname: maven-devcontainer restart: unless-stopped ports: - "9090:9090" volumes: - /workspace/projects/:/projects - /workspace:/workspace - - /workspace/container-root-volumes/maven-dev-env-root:/root - # stdin_open: true # For -i - # tty: true # For -t - # detach mode is default in compose + - /workspace/devcontainer-vols/maven-devcontainer-root:/root diff --git a/latex-workspace-container/Containerfile b/latex/Containerfile similarity index 100% rename from latex-workspace-container/Containerfile rename to latex/Containerfile diff --git a/latex-workspace-container/compose.yaml b/latex/compose.yaml similarity index 93% rename from latex-workspace-container/compose.yaml rename to latex/compose.yaml index ea59d4e..d76e27b 100644 --- a/latex-workspace-container/compose.yaml +++ b/latex/compose.yaml @@ -1,5 +1,3 @@ -version: '3' - services: latex-workspace: # image: texlive/texlive:latest @@ -9,7 +7,7 @@ services: dockerfile: Containerfile # image: localhost/latex-env:latest container_name: latex-workspace - hostname: latex-env + hostname: latex-devcontainer volumes: - /workspace/latex-projects:/workspace - latex-root:/root diff --git a/rust-dev-env/compose.yaml b/rust-dev-env/compose.yaml deleted file mode 100644 index beabed5..0000000 --- a/rust-dev-env/compose.yaml +++ /dev/null @@ -1,9 +0,0 @@ -version: '3' -services: - rust-dev: - image: rust-dev - volumes: - - /workspace/projects:/workspace - working_dir: /workspace - tty: true - stdin_open: true diff --git a/rust-dev-env/Containerfile b/rust/Containerfile similarity index 100% rename from rust-dev-env/Containerfile rename to rust/Containerfile diff --git a/rust/compose.yaml b/rust/compose.yaml new file mode 100644 index 0000000..e68e842 --- /dev/null +++ b/rust/compose.yaml @@ -0,0 +1,13 @@ +services: + rust-dev: + image: rust-dev:v1 + build: + context: . + dockerfile: Containerfile + hostname: rust-devcontainer + container_name: rust-dev + volumes: + - /workspace/projects:/workspace + working_dir: /workspace + tty: true + stdin_open: true