diff --git a/Dockerfile.rootless b/Dockerfile.rootless index 6197df68ae..8806bed797 100644 --- a/Dockerfile.rootless +++ b/Dockerfile.rootless @@ -76,6 +76,7 @@ RUN chown git:git /var/lib/gitea /etc/gitea COPY --from=build-env /tmp/local / COPY --from=build-env --chown=root:root /go/src/code.gitea.io/gitea/devcontainer_init.sh /var/lib/gitea/devcontainer_init.sh +COPY --from=build-env --chown=root:root /go/src/code.gitea.io/gitea/devcontainer_restart.sh /var/lib/gitea/devcontainer_restart.sh COPY --from=build-env --chown=root:root /go/src/code.gitea.io/gitea/gitea /app/gitea/gitea COPY --from=build-env --chown=root:root /go/src/code.gitea.io/gitea/environment-to-ini /usr/local/bin/environment-to-ini COPY --from=build-env /go/src/code.gitea.io/gitea/contrib/autocompletion/bash_autocomplete /etc/profile.d/gitea_bash_autocomplete.sh diff --git a/README.md b/README.md index 18b64adb2c..7ac05d436d 100644 --- a/README.md +++ b/README.md @@ -60,23 +60,25 @@ git add FILES git commit -m "commit log" git push ``` -在DevStar Git仓库发起Pull Request,合并代码后会自动触发CI流水线完成容器镜像的构建并上传到devstar.cn/devstar/devstar-studio:latest -### Start from Container Image +#### Start from Container Image ``` -sudo apt update && sudo apt install docker.io -sudo docker pull devstar.cn/devstar/devstar-studio:latest -# 创建devstar_data目录用于持久化存储DevStar相关的配置和用户数据 -mkdir ~/devstar_data -# 启动devstar-studio容器 -sudo docker run --restart=always --name devstar-studio -d -p 8080:3000 -v /var/run/docker.sock:/var/run/docker.sock -v ~/devstar_data:/var/lib/gitea -v ~/devstar_data:/etc/gitea devstar.cn/devstar/devstar-studio:latest -# 打开 `http://localhost:8080` 完成安装。 +make docker +public/assets/install.sh start --image=devstar-studio:latest -# 查看devstar-studio容器的启动日志 -sudo docker logs devstar-studio +# 查看日志 +public/assets/install.sh logs # 停止并删除devstar-studio容器 -sudo docker stop devstar-studio && sudo docker rm -f devstar-studio +public/assets/install.sh clean +# 删除所有容器 +sudo docker stop $(docker ps -aq) && sudo docker rm -f $(docker ps -aq) +``` + +在DevStar Git仓库发起Pull Request,合并代码后会自动触发CI流水线完成容器镜像的构建并上传到devstar.cn/devstar/devstar-studio:latest + +``` +public/assets/install.sh start ``` ## 提示 diff --git a/devcontainer_restart.sh b/devcontainer_restart.sh index 0e23d5f5a4..3974f7b2aa 100644 --- a/devcontainer_restart.sh +++ b/devcontainer_restart.sh @@ -1,2 +1,5 @@ +#!/bin/bash +# Copyright 2025 Mengning Software All rights reserved. + service ssh restart /usr/bin/ttyd/ttyd/ttyd -W -w $WORKDIR bash & \ No newline at end of file diff --git a/public/assets/install.sh b/public/assets/install.sh index 267e2e0113..c5e91ea80b 100755 --- a/public/assets/install.sh +++ b/public/assets/install.sh @@ -90,7 +90,9 @@ function install { # Function to start function start { - install + if [[ -z "$IMAGE_STR" ]]; then + install + fi # 创建devstar_data目录用于持久化存储DevStar相关的配置和用户数据 mkdir -p $DATA_DIR sudo chown 1000:1000 $DATA_DIR @@ -109,7 +111,11 @@ function start { fi # 启动devstar-studio容器 stop - sudo docker run --restart=always --name $NAME -e DOMAIN_NAME=$DOMAIN_NAME -d -p $PORT:3000 -p $SSH_PORT:$SSH_PORT -v /var/run/docker.sock:/var/run/docker.sock -v ~/devstar_data:/var/lib/gitea -v ~/devstar_data:/etc/gitea $IMAGE_REGISTRY_USER/$IMAGE_NAME:$VERSION + if [[ -z "$IMAGE_STR" ]]; then + IMAGE_STR="$IMAGE_REGISTRY_USER/$IMAGE_NAME:$VERSION" + fi + echo "image=$IMAGE_STR" + sudo docker run --restart=always --name $NAME -d -p $PORT:3000 -p $SSH_PORT:$SSH_PORT -v /var/run/docker.sock:/var/run/docker.sock -v ~/devstar_data:/var/lib/gitea -v ~/devstar_data:/etc/gitea $IMAGE_STR # 打开 `http://localhost:8080` 完成安装。 success "-------------------------------------------------------" success "DevStar started in http://$DOMAIN_NAME:$PORT successfully!" @@ -122,7 +128,9 @@ function stop { if [ $(docker ps -a --filter "name=^/${NAME}$" -q | wc -l) -gt 0 ]; then sudo docker stop $NAME && sudo docker rm -f $NAME fi - + if [ $(docker ps -a --filter "name=^/devstar-studio$" -q | wc -l) -gt 0 ]; then + sudo docker stop devstar-studio && sudo docker rm -f devstar-studio + fi } # Function to logs @@ -146,6 +154,7 @@ function usage { success " --port= Specify the port number (default port is 8080)" success " --ssh-port= Specify the ssh-port number (default ssh-port is 2222)" success " --version= Specify the DevStar Studio Image Version (default verson is latest)" + success " --image= Specify the DevStar Studio Image example: devstar-studio:latest " success " stop Stop the running DevStar Studio" success " logs View the logs of the devstar-studio container" failure " clean Clean up the running DevStar Studio, including deleting user data. Please use with caution." @@ -159,7 +168,7 @@ case "$1" in usage ;; start) - ARGS=$(getopt --long port::,ssh-port::,version:: -- "$@") + ARGS=$(getopt --long port::,ssh-port::,version::,image:: -- "$@") if [ $? -ne 0 ]; then failure "ARGS ERROR!" exit 1 @@ -179,7 +188,11 @@ case "$1" in --version) VERSION="$2" echo "The DevStar Studio Image Version is: $VERSION" - shift 2 ;; + shift 2 ;; + --image) + IMAGE_STR="$2" + echo "The DevStar Studio Image: $IMAGE_STR" + shift 2 ;; --) shift break ;;