diff --git a/.github/actions/build-and-push/action.yml b/.github/actions/build-and-push/action.yml new file mode 100644 index 00000000..18abac90 --- /dev/null +++ b/.github/actions/build-and-push/action.yml @@ -0,0 +1,47 @@ +name: 'Build and Push Docker Images' +description: 'Build and push Docker images to multiple registries' +inputs: + dockerfile: + description: 'Dockerfile path' + required: true + ghcr_image_name: + description: 'ghcr.io image name' + required: true + acr_image_name: + description: 'Aliyun ACR image name' + required: false + default: '' + aliyun_credentials: + description: 'JSON object containing Aliyun ACR credentials { "registry": string, "username": string, "password": string }' + required: false + default: '{}' +runs: + using: 'composite' + steps: + - name: Build and push to ghcr.io + shell: bash + run: | + echo "Building and pushing to ghcr.io: ${{ inputs.ghcr_image_name }}" + dockerfile_dir=$(dirname "${{ inputs.dockerfile }}") + docker buildx build --push \ + --file "${{ inputs.dockerfile }}" \ + --platform linux/amd64 \ + --tag "${{ inputs.ghcr_image_name }}" \ + "$dockerfile_dir" + - name: Build and push to Aliyun ACR + shell: bash + run: | + # Check if Aliyun credentials are provided + aliyun_credentials='${{ inputs.aliyun_credentials }}' + if [ "$aliyun_credentials" != "{}" ] && [ "$aliyun_credentials" != "" ] && [ "$aliyun_credentials" != "null" ] && [ "${{ inputs.acr_image_name }}" != "" ]; then + registry=$(echo "$aliyun_credentials" | jq -r '.registry') + if [ -n "$registry" ] && [ "$registry" != "null" ]; then + echo "Building and pushing to Aliyun ACR: ${{ inputs.acr_image_name }}" + dockerfile_dir=$(dirname "${{ inputs.dockerfile }}") + docker buildx build --push \ + --file "${{ inputs.dockerfile }}" \ + --platform linux/amd64 \ + --tag "${{ inputs.acr_image_name }}" \ + "$dockerfile_dir" + fi + fi diff --git a/.github/actions/build-cn-images/action.yml b/.github/actions/build-cn-images/action.yml new file mode 100644 index 00000000..c4f2d99e --- /dev/null +++ b/.github/actions/build-cn-images/action.yml @@ -0,0 +1,37 @@ +name: 'Build and Push CN Images' +description: 'Build and push CN (Chinese) versions of Docker images' +inputs: + dockerfile: + description: 'Dockerfile path' + required: true + ghcr_image_name: + description: 'ghcr.io CN image name' + required: true + acr_image_name: + description: 'Aliyun ACR CN image name' + required: false + default: '' + aliyun_credentials: + description: 'JSON object containing Aliyun ACR credentials { "registry": string, "username": string, "password": string }' + required: false + default: '{}' +runs: + using: 'composite' + steps: + - name: Build and push CN image to ghcr.io + shell: bash + run: | + echo "Building and pushing CN image to ghcr.io: ${{ inputs.ghcr_image_name }}" + ./bin/runtimectl ci build "${{ inputs.dockerfile }}" "${{ inputs.ghcr_image_name }}" --cn --push | bash + - name: Build and push CN image to Aliyun ACR + shell: bash + run: | + # Check if Aliyun credentials are provided + aliyun_credentials='${{ inputs.aliyun_credentials }}' + if [ "$aliyun_credentials" != "{}" ] && [ "$aliyun_credentials" != "" ] && [ "$aliyun_credentials" != "null" ] && [ "${{ inputs.acr_image_name }}" != "" ]; then + registry=$(echo "$aliyun_credentials" | jq -r '.registry') + if [ -n "$registry" ] && [ "$registry" != "null" ]; then + echo "Building and pushing CN image to Aliyun ACR: ${{ inputs.acr_image_name }}" + ./bin/runtimectl ci build "${{ inputs.dockerfile }}" "${{ inputs.acr_image_name }}" --cn --push | bash + fi + fi diff --git a/.github/actions/build-level/action.yml b/.github/actions/build-level/action.yml new file mode 100644 index 00000000..f30e6bde --- /dev/null +++ b/.github/actions/build-level/action.yml @@ -0,0 +1,130 @@ +name: 'Build Level' +description: 'Build a specific dependency level with all packages in that level' +inputs: + level_index: + description: 'The dependency level index (0, 1, 2)' + required: true + level_packages: + description: 'JSON array of packages in this level' + required: true + tag: + description: 'Tag for the Docker image' + required: true + tag_cn: + description: 'CN tag for the Docker image' + required: true + github_token: + description: 'GitHub Token for ghcr.io login' + required: true + aliyun_credentials: + description: 'JSON object containing Aliyun ACR credentials { "registry": string, "username": string, "password": string }' + required: false + default: '{}' + previous_levels: + description: 'JSON array of previous levels that must be completed' + required: false + default: '[]' +runs: + using: 'composite' + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Setup bin/runtimectl + uses: ./.github/actions/setup-runtimectl + - name: Setup Docker + uses: ./.github/actions/setup-docker + - name: Docker Login + uses: ./.github/actions/docker-login + with: + github_token: ${{ inputs.github_token }} + aliyun_credentials: ${{ inputs.aliyun_credentials }} + - name: Build level packages + shell: bash + run: | + echo "Building Level ${{ inputs.level_index }}" + + # Parse level packages + level_packages='${{ inputs.level_packages }}' + + if [ "$level_packages" = "null" ] || [ -z "$level_packages" ] || [ "$level_packages" = "[]" ]; then + echo "No packages in level ${{ inputs.level_index }}, skipping..." + exit 0 + fi + + # Validate JSON and count packages in this level + if ! echo "$level_packages" | jq empty 2>/dev/null; then + echo "Invalid JSON in level_packages: $level_packages" + exit 1 + fi + + package_count=$(echo "$level_packages" | jq 'length // 0') + echo "Level ${{ inputs.level_index }} contains $package_count packages" + + # Build each package in this level + echo "$level_packages" | jq -r '.[]? // empty' | while read -r build_target; do + if [ -n "$build_target" ]; then + echo "Building: $build_target" + + # Validate build + ./bin/runtimectl ci validate-build "$build_target" + + # Update base image references + dependencies=$(./bin/runtimectl -o json ci analyze-dependencies | jq -r --arg path "$build_target" '.nodes[]? | select(.path == $path) | .dependencies // [] | .[]? // empty') + + for dep in $dependencies; do + # Find the corresponding dockerfile for this dependency + dep_dockerfile=$(./bin/runtimectl -o json ci analyze-dependencies | jq -r --arg dep "$dep" '.nodes[]? | select(.name + "-" + .version == $dep) | .path // empty') + + if [ -n "$dep_dockerfile" ]; then + # Generate the image name for the dependency + dep_image_name=$(./bin/runtimectl ci image-name "$dep_dockerfile" "ghcr.io" "${{ github.repository_owner }}" "${{ inputs.tag }}" | tr '[:upper:]' '[:lower:]') + echo "Updating dependency $dep to: $dep_image_name" + ./bin/runtimectl ci update-base-image "$build_target" "$dep_image_name" + fi + done + + # Generate image names + ghcr_image_name=$(./bin/runtimectl ci image-name "$build_target" "ghcr.io" "${{ github.repository_owner }}" "${{ inputs.tag }}" | tr '[:upper:]' '[:lower:]') + acr_image_name=$(./bin/runtimectl ci image-name "$build_target" "registry.cn-hangzhou.aliyuncs.com" "${{ github.repository_owner }}" "${{ inputs.tag }}" | tr '[:upper:]' '[:lower:]') + + # Build and push images + echo "Building and pushing: $ghcr_image_name" + # Change to the directory containing the Dockerfile + dockerfile_dir=$(dirname "$build_target") + docker build -f "$build_target" -t "$ghcr_image_name" "$dockerfile_dir" + docker push "$ghcr_image_name" + + # Check if Aliyun credentials are provided + aliyun_credentials='${{ inputs.aliyun_credentials }}' + if [ "$aliyun_credentials" != "{}" ] && [ "$aliyun_credentials" != "" ] && [ "$aliyun_credentials" != "null" ]; then + registry=$(echo "$aliyun_credentials" | jq -r '.registry') + if [ -n "$registry" ] && [ "$registry" != "null" ]; then + echo "Building and pushing CN image: $acr_image_name" + docker tag "$ghcr_image_name" "$acr_image_name" + docker push "$acr_image_name" + fi + fi + + # Build CN version + ghcr_cn_image_name=$(./bin/runtimectl ci image-name "$build_target" "ghcr.io" "${{ github.repository_owner }}" "${{ inputs.tag_cn }}" | tr '[:upper:]' '[:lower:]') + acr_cn_image_name=$(./bin/runtimectl ci image-name "$build_target" "registry.cn-hangzhou.aliyuncs.com" "${{ github.repository_owner }}" "${{ inputs.tag_cn }}" | tr '[:upper:]' '[:lower:]') + + echo "Building and pushing CN image: $ghcr_cn_image_name" + docker build -f "$build_target" -t "$ghcr_cn_image_name" . + docker push "$ghcr_cn_image_name" + + # Check if Aliyun credentials are provided for CN image + if [ "$aliyun_credentials" != "{}" ] && [ "$aliyun_credentials" != "" ] && [ "$aliyun_credentials" != "null" ]; then + registry=$(echo "$aliyun_credentials" | jq -r '.registry') + if [ -n "$registry" ] && [ "$registry" != "null" ]; then + echo "Building and pushing CN ACR image: $acr_cn_image_name" + docker tag "$ghcr_cn_image_name" "$acr_cn_image_name" + docker push "$acr_cn_image_name" + fi + fi + + echo "Completed building: $build_target" + fi + done diff --git a/.github/actions/docker-login/action.yml b/.github/actions/docker-login/action.yml new file mode 100644 index 00000000..cd33a0ac --- /dev/null +++ b/.github/actions/docker-login/action.yml @@ -0,0 +1,29 @@ +name: 'Docker Registry Login' +description: 'Login to Docker registries (ghcr.io and Aliyun ACR)' +inputs: + github_token: + description: 'GitHub Token for ghcr.io login' + required: true + aliyun_credentials: + description: 'JSON object containing Aliyun ACR credentials { "registry": string, "username": string, "password": string }' + required: false + default: '{}' +runs: + using: 'composite' + steps: + - name: Login to ghcr.io + shell: bash + run: echo "${{ inputs.github_token }}" | docker login ghcr.io -u "${{ github.repository_owner }}" --password-stdin + - name: Login to Aliyun ACR + shell: bash + if: inputs.aliyun_credentials != '{}' && inputs.aliyun_credentials != '' && inputs.aliyun_credentials != 'null' + run: | + registry=$(echo "${{ inputs.aliyun_credentials }}" | jq -r '.registry') + username=$(echo "${{ inputs.aliyun_credentials }}" | jq -r '.username') + password=$(echo "${{ inputs.aliyun_credentials }}" | jq -r '.password') + if [ -n "$registry" ] && [ -n "$username" ] && [ -n "$password" ]; then + echo "$password" | docker login "$registry" -u "$username" --password-stdin + else + echo "Error: Incomplete Aliyun credentials provided" + exit 1 + fi diff --git a/.github/actions/generate-image-names/action.yml b/.github/actions/generate-image-names/action.yml new file mode 100644 index 00000000..4f4993d1 --- /dev/null +++ b/.github/actions/generate-image-names/action.yml @@ -0,0 +1,48 @@ +name: 'Generate Image Names' +description: 'Generate image names for both ghcr.io and Aliyun ACR' +inputs: + dockerfile: + description: 'Dockerfile path' + required: true + tag: + description: 'Image tag' + required: true + aliyun_credentials: + description: 'JSON object containing Aliyun ACR credentials { "registry": string, "username": string, "password": string }' + required: false + default: '{}' +outputs: + ghcr_image_name: + description: 'Generated ghcr.io image name' + value: ${{ steps.generate.outputs.ghcr_image_name }} + acr_image_name: + description: 'Generated Aliyun ACR image name' + value: ${{ steps.generate.outputs.acr_image_name }} +runs: + using: 'composite' + steps: + - name: Generate image names + id: generate + shell: bash + run: | + echo "dockerfile=${{ inputs.dockerfile }}" + echo "tag=${{ inputs.tag }}" + + # Generate ghcr.io image name + ghcr_image_name=$(./bin/runtimectl ci image-name "${{ inputs.dockerfile }}" "ghcr.io" "${{ github.repository_owner }}" "${{ inputs.tag }}" | tr '[:upper:]' '[:lower:]') + echo "ghcr_image_name=$ghcr_image_name" >> $GITHUB_OUTPUT + + # Generate Aliyun ACR image name if credentials are provided + aliyun_credentials='${{ inputs.aliyun_credentials }}' + if [ "$aliyun_credentials" != "{}" ] && [ "$aliyun_credentials" != "" ] && [ "$aliyun_credentials" != "null" ]; then + registry=$(echo "$aliyun_credentials" | jq -r '.registry') + username=$(echo "$aliyun_credentials" | jq -r '.username') + if [ -n "$registry" ] && [ "$registry" != "null" ] && [ -n "$username" ] && [ "$username" != "null" ]; then + acr_image_name=$(./bin/runtimectl ci image-name "${{ inputs.dockerfile }}" "$registry" "$username" "${{ inputs.tag }}" | tr '[:upper:]' '[:lower:]') + echo "acr_image_name=$acr_image_name" >> $GITHUB_OUTPUT + else + echo "acr_image_name=" >> $GITHUB_OUTPUT + fi + else + echo "acr_image_name=" >> $GITHUB_OUTPUT + fi diff --git a/.github/actions/setup-docker/action.yml b/.github/actions/setup-docker/action.yml new file mode 100644 index 00000000..424d6ecd --- /dev/null +++ b/.github/actions/setup-docker/action.yml @@ -0,0 +1,9 @@ +name: 'Setup Docker Build Environment' +description: 'Setup Docker buildx and QEMU for multi-platform builds' +runs: + using: 'composite' + steps: + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 diff --git a/.github/actions/setup-runtimectl/action.yml b/.github/actions/setup-runtimectl/action.yml new file mode 100644 index 00000000..5df2b6c1 --- /dev/null +++ b/.github/actions/setup-runtimectl/action.yml @@ -0,0 +1,13 @@ +name: 'Setup Runtimectl' +description: 'Build and setup runtimectl binary' +runs: + using: 'composite' + steps: + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: '1.21' + - name: Build runtimectl + shell: bash + run: | + make build diff --git a/Framework/angular/v18/project/src/app/app.component.css b/.github/actions/update-dependencies/action.yml similarity index 100% rename from Framework/angular/v18/project/src/app/app.component.css rename to .github/actions/update-dependencies/action.yml diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml new file mode 100644 index 00000000..d79776e2 --- /dev/null +++ b/.github/workflows/docker-build.yml @@ -0,0 +1,204 @@ +name: Build Docker Images + +on: + workflow_dispatch: + inputs: + tag: + description: 'Tag for the Docker image' + required: true + default: 'latest' + build_all: + description: 'Build all images (ignore changes)' + required: false + default: 'true' + aliyun_enabled: + description: 'Enable Aliyun ACR builds' + required: false + default: 'false' + push: + branches: + - 'main' + +jobs: + # Define build matrix using bin/runtimectl ci build-order + define-matrix: + runs-on: ubuntu-latest + outputs: + tag: ${{ steps.set_tag.outputs.tag }} + tag_cn: ${{ steps.set_tag.outputs.tag_cn }} + build_order: ${{ steps.get_build_order.outputs.build_order }} + level_0: ${{ steps.get_levels.outputs.level_0 }} + level_1: ${{ steps.get_levels.outputs.level_1 }} + level_2: ${{ steps.get_levels.outputs.level_2 }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup bin/runtimectl + uses: ./.github/actions/setup-runtimectl + + - name: Set up tag + id: set_tag + run: | + if [ -n "${{ inputs.tag }}" ]; then + tag=${{ inputs.tag }} + else + tag=$(echo "${{ github.sha }}" | cut -c1-7) + fi + tag_cn=$tag-cn + echo "tag=$tag" >> $GITHUB_OUTPUT + echo "tag_cn=$tag_cn" >> $GITHUB_OUTPUT + + - name: Get build order + id: get_build_order + run: | + if [ "${{ inputs.build_all }}" = "true" ] || [ -n "${{ inputs.tag }}" ]; then + # Get all images in dependency order + build_order=$(./bin/runtimectl -o json ci build-order | jq -c .) + else + # Get changed images with dependencies + changed_files=$(./bin/runtimectl ci build-matrix --changed --commit1 $(echo "${{ github.event.before }}" | cut -c1-7) --commit2 $(echo "${{ github.sha }}" | cut -c1-7) --with-dependencies) + build_order=$(./bin/runtimectl -o json ci build-order | jq --argjson changed "$changed_files" '[.[] | select(. as $item | $changed | index($item))]' | jq -c .) + fi + echo "build_order<> $GITHUB_OUTPUT + echo "$build_order" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + + - name: Get dependency levels + id: get_levels + run: | + # Get dependency graph and extract levels + graph=$(./bin/runtimectl -o json ci analyze-dependencies) + level_0=$(echo "$graph" | jq -c '.levels[0] // []') + level_1=$(echo "$graph" | jq -c '.levels[1] // []') + level_2=$(echo "$graph" | jq -c '.levels[2] // []') + + echo "level_0<> $GITHUB_OUTPUT + echo "$level_0" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + + echo "level_1<> $GITHUB_OUTPUT + echo "$level_1" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + + echo "level_2<> $GITHUB_OUTPUT + echo "$level_2" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + + # Output level information + echo "Level 0 (OS): $(echo "$level_0" | jq 'length') packages" + echo "Level 1 (Language): $(echo "$level_1" | jq 'length') packages" + echo "Level 2 (Framework): $(echo "$level_2" | jq 'length') packages" + + - name: Validate dependencies + run: | + ./bin/runtimectl ci validate-dependencies + + # Build Level 0: Base Images (OS) + build-level-0: + runs-on: ubuntu-latest + needs: define-matrix + if: ${{ fromJson(needs.define-matrix.outputs.level_0) != null && fromJson(needs.define-matrix.outputs.level_0) != '[]' }} + permissions: + contents: read + packages: write + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Build Level 0 + uses: ./.github/actions/build-level + with: + level_index: 0 + level_packages: ${{ needs.define-matrix.outputs.level_0 }} + tag: ${{ needs.define-matrix.outputs.tag }} + tag_cn: ${{ needs.define-matrix.outputs.tag_cn }} + github_token: ${{ secrets.GITHUB_TOKEN }} + aliyun_credentials: ${{ inputs.aliyun_enabled == 'true' && format('{{"registry":"{0}","username":"{1}","password":"{2}"}}', secrets.ALIYUN_REGISTRY, secrets.ALIYUN_USERNAME, secrets.ALIYUN_PASSWORD) || '{}' }} + + # Build Level 1: Language Images (depends on Level 0) + build-level-1: + runs-on: ubuntu-latest + needs: [define-matrix, build-level-0] + if: ${{ fromJson(needs.define-matrix.outputs.level_1) != null && fromJson(needs.define-matrix.outputs.level_1) != '[]' }} + permissions: + contents: read + packages: write + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Build Level 1 + uses: ./.github/actions/build-level + with: + level_index: 1 + level_packages: ${{ needs.define-matrix.outputs.level_1 }} + tag: ${{ needs.define-matrix.outputs.tag }} + tag_cn: ${{ needs.define-matrix.outputs.tag_cn }} + github_token: ${{ secrets.GITHUB_TOKEN }} + aliyun_credentials: ${{ inputs.aliyun_enabled == 'true' && format('{{"registry":"{0}","username":"{1}","password":"{2}"}}', secrets.ALIYUN_REGISTRY, secrets.ALIYUN_USERNAME, secrets.ALIYUN_PASSWORD) || '{}' }} + + # Build Level 2: Framework Images (depends on Level 1) + build-level-2: + runs-on: ubuntu-latest + needs: [define-matrix, build-level-1] + if: ${{ fromJson(needs.define-matrix.outputs.level_2) != null && fromJson(needs.define-matrix.outputs.level_2) != '[]' }} + permissions: + contents: read + packages: write + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Build Level 2 + uses: ./.github/actions/build-level + with: + level_index: 2 + level_packages: ${{ needs.define-matrix.outputs.level_2 }} + tag: ${{ needs.define-matrix.outputs.tag }} + tag_cn: ${{ needs.define-matrix.outputs.tag_cn }} + github_token: ${{ secrets.GITHUB_TOKEN }} + aliyun_credentials: ${{ inputs.aliyun_enabled == 'true' && format('{{"registry":"{0}","username":"{1}","password":"{2}"}}', secrets.ALIYUN_REGISTRY, secrets.ALIYUN_USERNAME, secrets.ALIYUN_PASSWORD) || '{}' }} + + # # Generate runtime configuration + # generate-config: + # runs-on: ubuntu-latest + # needs: [define-matrix, build-level-0, build-level-1, build-level-2] + # if: always() + # steps: + # - name: Checkout code + # uses: actions/checkout@v4 + # with: + # fetch-depth: 0 + + # - name: Setup bin/runtimectl + # uses: ./.github/actions/setup-runtimectl + + # - name: Generate runtime configuration + # run: | + # echo "Generating runtime configuration..." + # ./bin/runtimectl ci generate-config --tag "${{ needs.define-matrix.outputs.tag }}" + # ./bin/runtimectl ci generate-config --cn --tag "${{ needs.define-matrix.outputs.tag_cn }}" + + # # Generate dependency graph visualization + # generate-dependency-graph: + # runs-on: ubuntu-latest + # needs: [define-matrix] + # steps: + # - name: Checkout code + # uses: actions/checkout@v4 + # with: + # fetch-depth: 0 + + # - name: Setup bin/runtimectl + # uses: ./.github/actions/setup-runtimectl + + # - name: Generate dependency graph + # run: | + # echo "## Dependency Graph" >> $GITHUB_STEP_SUMMARY + # ./bin/runtimectl ci dependency-graph >> $GITHUB_STEP_SUMMARY diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml deleted file mode 100644 index 062a2565..00000000 --- a/.github/workflows/docker-image.yml +++ /dev/null @@ -1,96 +0,0 @@ -name: Build Docker Images - -on: - workflow_dispatch: - inputs: - tag: - description: 'tag for the Docker image' - required: true - default: 'latest' - push: - branches: - - 'main' -jobs: - define-matrix: - runs-on: ubuntu-latest - outputs: - tag: ${{ steps.set_tag.outputs.tag }} - tag_cn: ${{ steps.set_tag.outputs.tag_cn }} - build_targets: ${{ steps.get_build_matrix.outputs.build_targets }} - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Set up tag - id: set_tag - run: | - if [ -n "${{ inputs.tag }}" ]; then - tag=${{ inputs.tag }} - else - tag=$(echo "${{ github.sha }}" | cut -c1-7) - fi - tag_cn=$tag-cn - echo "tag=$tag" >> $GITHUB_OUTPUT - echo "tag_cn=$tag_cn" >> $GITHUB_OUTPUT - - name: Get build matrix - id: get_build_matrix - run: | - if [ -n "${{ inputs.tag }}" ]; then - build_targets=$(bash script/get_all_dockerfile.sh) - else - build_targets=$(bash script/get_changed_dockerfile.sh $(echo "${{ github.event.before }}" | cut -c1-7) $(echo "${{ github.sha }}" | cut -c1-7)) - fi - echo "build_targets=$build_targets" >> $GITHUB_OUTPUT - build: - runs-on: ubuntu-latest - needs: define-matrix - strategy: - fail-fast: false - matrix: - build_target: ${{ fromJson(needs.define-matrix.outputs.build_targets) }} - permissions: - contents: read - packages: write - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Login to ghcr.io - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - name: Login to Aliyun ACR - uses: docker/login-action@v3 - with: - registry: ${{ secrets.ALIYUN_REGISTRY }} - username: ${{ secrets.ALIYUN_USERNAME }} - password: ${{ secrets.ALIYUN_PASSWORD }} - - name: Build and push images - run: | - echo "build_target=${{ matrix.build_target }}" - echo "tag=${{ needs.define-matrix.outputs.tag }}" - ghcr_image_name=$(bash script/get_image_name.sh "ghcr.io" "${{ github.repository_owner }}" "${{ matrix.build_target }}" "${{ needs.define-matrix.outputs.tag }}" | tr '[:upper:]' '[:lower:]') - acr_image_name=$(bash script/get_image_name.sh "${{ secrets.ALIYUN_REGISTRY }}" "${{ secrets.ALIYUN_NAMESPACE }}" "${{ matrix.build_target }}" "${{ needs.define-matrix.outputs.tag }}" | tr '[:upper:]' '[:lower:]') - echo "ghcr_image_name=$ghcr_image_name" >> $GITHUB_OUTPUT - echo "acr_image_name=$acr_image_name" >> $GITHUB_OUTPUT - echo "Building and pushing both images..." - is_cn="0" bash script/build_and_push_images.sh "${{ matrix.build_target }}" "$ghcr_image_name" "$acr_image_name" $is_cn - - name: Build and push images_cn - run: | - echo "build_target=${{ matrix.build_target }}" - echo "tag_cn=${{ needs.define-matrix.outputs.tag_cn }}" - ghcr_image_name_cn=$(bash script/get_image_name.sh "ghcr.io" "${{ github.repository_owner }}" "${{ matrix.build_target }}" "${{ needs.define-matrix.outputs.tag_cn }}" | tr '[:upper:]' '[:lower:]') - acr_image_name_cn=$(bash script/get_image_name.sh "${{ secrets.ALIYUN_REGISTRY }}" "${{ secrets.ALIYUN_NAMESPACE }}" "${{ matrix.build_target }}" "${{ needs.define-matrix.outputs.tag_cn }}" | tr '[:upper:]' '[:lower:]') - echo "ghcr_image_name_cn=$ghcr_image_name_cn" >> $GITHUB_OUTPUT - echo "acr_image_name_cn=$acr_image_name_cn" >> $GITHUB_OUTPUT - echo "Building and pushing both images..." - is_cn="1" bash script/build_and_push_images.sh "${{ matrix.build_target }}" "$ghcr_image_name_cn" "$acr_image_name_cn" $is_cn - # TODO: generate runtime yaml and json diff --git a/.gitignore b/.gitignore index c3ff15f9..b0c51be1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,15 @@ /.vscode -Language/rust/project/target/ +# 生成的文件 +generated/ +*.bak +bin + +# 临时文件 +*.tmp +*.log + +# IDE 文件 +.vscode/ +.idea/ +*.swp +*.swo diff --git a/Framework/angular/v18/project/.vscode/extensions.json b/Framework/angular/v18/project/.vscode/extensions.json deleted file mode 100644 index 77b37457..00000000 --- a/Framework/angular/v18/project/.vscode/extensions.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846 - "recommendations": ["angular.ng-template"] -} diff --git a/Framework/angular/v18/project/.vscode/launch.json b/Framework/angular/v18/project/.vscode/launch.json deleted file mode 100644 index 925af837..00000000 --- a/Framework/angular/v18/project/.vscode/launch.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "ng serve", - "type": "chrome", - "request": "launch", - "preLaunchTask": "npm: start", - "url": "http://localhost:4200/" - }, - { - "name": "ng test", - "type": "chrome", - "request": "launch", - "preLaunchTask": "npm: test", - "url": "http://localhost:9876/debug.html" - } - ] -} diff --git a/Framework/angular/v18/project/.vscode/tasks.json b/Framework/angular/v18/project/.vscode/tasks.json deleted file mode 100644 index a298b5bd..00000000 --- a/Framework/angular/v18/project/.vscode/tasks.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558 - "version": "2.0.0", - "tasks": [ - { - "type": "npm", - "script": "start", - "isBackground": true, - "problemMatcher": { - "owner": "typescript", - "pattern": "$tsc", - "background": { - "activeOnStart": true, - "beginsPattern": { - "regexp": "(.*?)" - }, - "endsPattern": { - "regexp": "bundle generation complete" - } - } - } - }, - { - "type": "npm", - "script": "test", - "isBackground": true, - "problemMatcher": { - "owner": "typescript", - "pattern": "$tsc", - "background": { - "activeOnStart": true, - "beginsPattern": { - "regexp": "(.*?)" - }, - "endsPattern": { - "regexp": "bundle generation complete" - } - } - } - } - ] -} diff --git a/Framework/astro/4.10.0/project/.vscode/extensions.json b/Framework/astro/4.10.0/project/.vscode/extensions.json deleted file mode 100644 index 22a15055..00000000 --- a/Framework/astro/4.10.0/project/.vscode/extensions.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "recommendations": ["astro-build.astro-vscode"], - "unwantedRecommendations": [] -} diff --git a/Framework/astro/4.10.0/project/.vscode/launch.json b/Framework/astro/4.10.0/project/.vscode/launch.json deleted file mode 100644 index d6422097..00000000 --- a/Framework/astro/4.10.0/project/.vscode/launch.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "command": "./node_modules/.bin/astro dev", - "name": "Development server", - "request": "launch", - "type": "node-terminal" - } - ] -} diff --git a/Framework/django/4.2.16/project/.vscode/settings.json b/Framework/django/4.2.16/project/.vscode/settings.json deleted file mode 100644 index 6aed7800..00000000 --- a/Framework/django/4.2.16/project/.vscode/settings.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "python.defaultInterpreterPath": "./venv/bin/python", - "python.terminal.activateEnvironment": true, - "terminal.integrated.env.linux": { - "VIRTUAL_ENV": "${workspaceFolder}/venv" - }, - "terminal.integrated.profiles.linux": { - "Python Venv": { - "path": "/bin/bash", - "args": ["-c", "source ${workspaceFolder}/bin/activate && exec bash"] - } - }, - "terminal.integrated.defaultProfile.linux": "Python Venv" -} diff --git a/Framework/docusaurus/3.5.2/project/.vscode/extensions.json b/Framework/docusaurus/3.5.2/project/.vscode/extensions.json deleted file mode 100644 index 564dcc09..00000000 --- a/Framework/docusaurus/3.5.2/project/.vscode/extensions.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "esbenp.prettier-vscode", - "dbaeumer.vscode-eslint", - "burkeholland.simple-react-snippets", - "prisma.prisma", - "bradlc.vscode-tailwindcss" - ] -} \ No newline at end of file diff --git a/Framework/flask/3.0.3/project/.vscode/extensions.json b/Framework/flask/3.0.3/project/.vscode/extensions.json deleted file mode 100644 index c4c58b5a..00000000 --- a/Framework/flask/3.0.3/project/.vscode/extensions.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "formulahendry.code-runner", - "ms-python.python", - "ms-python.debugpy" - ] -} \ No newline at end of file diff --git a/Framework/flask/3.0.3/project/.vscode/settings.json b/Framework/flask/3.0.3/project/.vscode/settings.json deleted file mode 100644 index 6aed7800..00000000 --- a/Framework/flask/3.0.3/project/.vscode/settings.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "python.defaultInterpreterPath": "./venv/bin/python", - "python.terminal.activateEnvironment": true, - "terminal.integrated.env.linux": { - "VIRTUAL_ENV": "${workspaceFolder}/venv" - }, - "terminal.integrated.profiles.linux": { - "Python Venv": { - "path": "/bin/bash", - "args": ["-c", "source ${workspaceFolder}/bin/activate && exec bash"] - } - }, - "terminal.integrated.defaultProfile.linux": "Python Venv" -} diff --git a/Framework/gin/v1.10.0/project/.vscode/extensions.json b/Framework/gin/v1.10.0/project/.vscode/extensions.json deleted file mode 100644 index 23332312..00000000 --- a/Framework/gin/v1.10.0/project/.vscode/extensions.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "golang.go", - "golang.go-nightly", - "formulahendry.code-runner" - ] -} \ No newline at end of file diff --git a/Framework/hugo/v0.135.0/project/.vscode/extensions.json b/Framework/hugo/v0.135.0/project/.vscode/extensions.json deleted file mode 100644 index b40da722..00000000 --- a/Framework/hugo/v0.135.0/project/.vscode/extensions.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "golang.go", - "golang.go-nightly", - "formulahendry.code-runner", - "budparr.language-hugo-vscode", - "rusnasonov.vscode-hugo" - ] -} \ No newline at end of file diff --git a/Framework/laravel/5.8.5/project/.vscode/extensions.json b/Framework/laravel/5.8.5/project/.vscode/extensions.json deleted file mode 100644 index 81d64bfc..00000000 --- a/Framework/laravel/5.8.5/project/.vscode/extensions.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "devsense.phptools-vscode", - "xdebug.php-debug", - "bmewburn.vscode-intelephense-client" - ] -} \ No newline at end of file diff --git a/Framework/next.js/14.2.5/project/.vscode/extensions.json b/Framework/next.js/14.2.5/project/.vscode/extensions.json deleted file mode 100644 index 564dcc09..00000000 --- a/Framework/next.js/14.2.5/project/.vscode/extensions.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "esbenp.prettier-vscode", - "dbaeumer.vscode-eslint", - "burkeholland.simple-react-snippets", - "prisma.prisma", - "bradlc.vscode-tailwindcss" - ] -} \ No newline at end of file diff --git a/Framework/nginx/1.22.1/Dockerfile b/Framework/nginx/1.22.1/Dockerfile deleted file mode 100644 index 03801d18..00000000 --- a/Framework/nginx/1.22.1/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -FROM ghcr.io/labring-actions/devbox/node.js-20:3b6f7a9 -# Test comment for GitHub Actions trigger -USER root -RUN cd /home/devbox/project - -RUN apt-get update && apt-get install -y nginx - -COPY /Framework/nginx/1.22.1/project /home/devbox/project -COPY /Framework/nginx/1.22.1/nginx.conf /etc/nginx/nginx.conf -RUN chown -R devbox:devbox /home/devbox/project && \ -chmod -R u+rw /home/devbox/project && \ -chmod -R +x /home/devbox/project/entrypoint.sh - -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file diff --git a/Framework/nginx/1.22.1/project/.vscode/extensions.json b/Framework/nginx/1.22.1/project/.vscode/extensions.json deleted file mode 100644 index 564dcc09..00000000 --- a/Framework/nginx/1.22.1/project/.vscode/extensions.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "esbenp.prettier-vscode", - "dbaeumer.vscode-eslint", - "burkeholland.simple-react-snippets", - "prisma.prisma", - "bradlc.vscode-tailwindcss" - ] -} \ No newline at end of file diff --git a/Framework/nuxt3/v3.13/project/.vscode/extensions.json b/Framework/nuxt3/v3.13/project/.vscode/extensions.json deleted file mode 100644 index 564dcc09..00000000 --- a/Framework/nuxt3/v3.13/project/.vscode/extensions.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "esbenp.prettier-vscode", - "dbaeumer.vscode-eslint", - "burkeholland.simple-react-snippets", - "prisma.prisma", - "bradlc.vscode-tailwindcss" - ] -} \ No newline at end of file diff --git a/Framework/quarkus/3.16.1/project/.vscode/extensions.json b/Framework/quarkus/3.16.1/project/.vscode/extensions.json deleted file mode 100644 index f931831d..00000000 --- a/Framework/quarkus/3.16.1/project/.vscode/extensions.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "formulahendry.code-runner", - "oracle.oracle-java", - "vscjava.vscode-java-pack" - ] -} \ No newline at end of file diff --git a/Framework/react/18.2.0/project/.vscode/extensions.json b/Framework/react/18.2.0/project/.vscode/extensions.json deleted file mode 100644 index 564dcc09..00000000 --- a/Framework/react/18.2.0/project/.vscode/extensions.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "esbenp.prettier-vscode", - "dbaeumer.vscode-eslint", - "burkeholland.simple-react-snippets", - "prisma.prisma", - "bradlc.vscode-tailwindcss" - ] -} \ No newline at end of file diff --git a/Framework/rocket/0.5.1/Dockerfile b/Framework/rocket/0.5.1/Dockerfile deleted file mode 100644 index 054152a2..00000000 --- a/Framework/rocket/0.5.1/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM ghcr.io/labring-actions/devbox/rust-1.81.0:3b6f7a9 - -RUN cd /home/devbox/project && \ -rm -rf ./* - -USER root -COPY /Framework/rocket/0.5.1/project /home/devbox/project - -RUN chown -R devbox:devbox /home/devbox/project && \ -chmod -R u+rw /home/devbox/project && \ -chmod -R +x /home/devbox/project/entrypoint.sh - -USER devbox -RUN cd /home/devbox/project && \ -cargo build --release - -USER root -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file diff --git a/Framework/rocket/0.5.1/project/.vscode/extensions.json b/Framework/rocket/0.5.1/project/.vscode/extensions.json deleted file mode 100644 index 0d630962..00000000 --- a/Framework/rocket/0.5.1/project/.vscode/extensions.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "rust-lang.rust-analyzer", - "dustypomerleau.rust-syntax" - ] -} \ No newline at end of file diff --git a/Framework/sealaf/1.0.0/project/.vscode/extensions.json b/Framework/sealaf/1.0.0/project/.vscode/extensions.json deleted file mode 100644 index a7f9c3bf..00000000 --- a/Framework/sealaf/1.0.0/project/.vscode/extensions.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "recommendations": [ - "dbaeumer.vscode-eslint", - "esbenp.prettier-vscode" - ] -} \ No newline at end of file diff --git a/Framework/sealaf/1.0.0/project/.vscode/settings.json b/Framework/sealaf/1.0.0/project/.vscode/settings.json deleted file mode 100644 index 15ad54af..00000000 --- a/Framework/sealaf/1.0.0/project/.vscode/settings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "editor.formatOnSave": true, - "typescript.tsdk": "node_modules/typescript/lib", - "[javascript]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[typescript]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - } -} \ No newline at end of file diff --git a/Framework/spring-boot/3.3.2/Dockerfile b/Framework/spring-boot/3.3.2/Dockerfile deleted file mode 100644 index 8a5f08ac..00000000 --- a/Framework/spring-boot/3.3.2/Dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -FROM ghcr.io/labring-actions/devbox/java-openjdk17:3b6f7a9 - -RUN cd /home/devbox/project && \ -rm -rf ./* - -COPY /Framework/spring-boot/3.3.2/project /home/devbox/project - -RUN chown -R devbox:devbox /home/devbox/project && \ -chmod -R u+rw /home/devbox/project && \ -chmod -R +x /home/devbox/project/entrypoint.sh - -USER devbox -RUN cd /home/devbox/project && \ - mvn install - -USER root -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file diff --git a/Framework/spring-boot/3.3.2/project/.vscode/extensions.json b/Framework/spring-boot/3.3.2/project/.vscode/extensions.json deleted file mode 100644 index f931831d..00000000 --- a/Framework/spring-boot/3.3.2/project/.vscode/extensions.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "formulahendry.code-runner", - "oracle.oracle-java", - "vscjava.vscode-java-pack" - ] -} \ No newline at end of file diff --git a/Framework/umi/4.3.27/project/.vscode/extensions.json b/Framework/umi/4.3.27/project/.vscode/extensions.json deleted file mode 100644 index 564dcc09..00000000 --- a/Framework/umi/4.3.27/project/.vscode/extensions.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "esbenp.prettier-vscode", - "dbaeumer.vscode-eslint", - "burkeholland.simple-react-snippets", - "prisma.prisma", - "bradlc.vscode-tailwindcss" - ] -} \ No newline at end of file diff --git a/Framework/vert.x/4.5.10/Dockerfile b/Framework/vert.x/4.5.10/Dockerfile deleted file mode 100644 index 4a47374c..00000000 --- a/Framework/vert.x/4.5.10/Dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -FROM ghcr.io/labring-actions/devbox/java-openjdk17:3b6f7a9 - -RUN cd /home/devbox/project && \ -rm -rf ./* - -COPY /Framework/vert.x/4.5.10/project /home/devbox/project - -RUN chown -R devbox:devbox /home/devbox/project && \ -chmod -R u+rw /home/devbox/project && \ -chmod -R +x /home/devbox/project/entrypoint.sh - -USER devbox -RUN cd /home/devbox/project && \ -mvn package && \ -mvn install - -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file diff --git a/Framework/vue/v3.4.29/project/.vscode/extensions.json b/Framework/vue/v3.4.29/project/.vscode/extensions.json deleted file mode 100644 index 564dcc09..00000000 --- a/Framework/vue/v3.4.29/project/.vscode/extensions.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "esbenp.prettier-vscode", - "dbaeumer.vscode-eslint", - "burkeholland.simple-react-snippets", - "prisma.prisma", - "bradlc.vscode-tailwindcss" - ] -} \ No newline at end of file diff --git a/Language/c/project/.vscode/extensions.json b/Language/c/project/.vscode/extensions.json deleted file mode 100644 index 4482f2be..00000000 --- a/Language/c/project/.vscode/extensions.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "ms-vscode.cpptools", - "ms-vscode.cpptools-extension-pack", - "ms-vscode.cpptools-themes", - "formulahendry.code-runner" - ] -} \ No newline at end of file diff --git a/Language/cpp/project/.vscode/extensions.json b/Language/cpp/project/.vscode/extensions.json deleted file mode 100644 index 4482f2be..00000000 --- a/Language/cpp/project/.vscode/extensions.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "ms-vscode.cpptools", - "ms-vscode.cpptools-extension-pack", - "ms-vscode.cpptools-themes", - "formulahendry.code-runner" - ] -} \ No newline at end of file diff --git a/Language/go/project/.vscode/extensions.json b/Language/go/project/.vscode/extensions.json deleted file mode 100644 index eebbca2a..00000000 --- a/Language/go/project/.vscode/extensions.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "recommendations": [ - "golang.go", - ] -} diff --git a/Language/java/project/.vscode/extensions.json b/Language/java/project/.vscode/extensions.json deleted file mode 100644 index f931831d..00000000 --- a/Language/java/project/.vscode/extensions.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "formulahendry.code-runner", - "oracle.oracle-java", - "vscjava.vscode-java-pack" - ] -} \ No newline at end of file diff --git a/Language/net/project/.vscode/extensions.json b/Language/net/project/.vscode/extensions.json deleted file mode 100644 index 876d2887..00000000 --- a/Language/net/project/.vscode/extensions.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "ms-dotnettools.vscode-dotnet-runtime", - "ms-dotnettools.vscode-dotnet-pack", - "formulahendry.dotnet" - ] -} \ No newline at end of file diff --git a/Language/node.js/project/.vscode/extensions.json b/Language/node.js/project/.vscode/extensions.json deleted file mode 100644 index 564dcc09..00000000 --- a/Language/node.js/project/.vscode/extensions.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "esbenp.prettier-vscode", - "dbaeumer.vscode-eslint", - "burkeholland.simple-react-snippets", - "prisma.prisma", - "bradlc.vscode-tailwindcss" - ] -} \ No newline at end of file diff --git a/Language/php/project/.vscode/extensions.json b/Language/php/project/.vscode/extensions.json deleted file mode 100644 index 81d64bfc..00000000 --- a/Language/php/project/.vscode/extensions.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "devsense.phptools-vscode", - "xdebug.php-debug", - "bmewburn.vscode-intelephense-client" - ] -} \ No newline at end of file diff --git a/Language/python/project/.vscode/extensions.json b/Language/python/project/.vscode/extensions.json deleted file mode 100644 index c4c58b5a..00000000 --- a/Language/python/project/.vscode/extensions.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "formulahendry.code-runner", - "ms-python.python", - "ms-python.debugpy" - ] -} \ No newline at end of file diff --git a/Language/python/project/.vscode/settings.json b/Language/python/project/.vscode/settings.json deleted file mode 100644 index 6aed7800..00000000 --- a/Language/python/project/.vscode/settings.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "python.defaultInterpreterPath": "./venv/bin/python", - "python.terminal.activateEnvironment": true, - "terminal.integrated.env.linux": { - "VIRTUAL_ENV": "${workspaceFolder}/venv" - }, - "terminal.integrated.profiles.linux": { - "Python Venv": { - "path": "/bin/bash", - "args": ["-c", "source ${workspaceFolder}/bin/activate && exec bash"] - } - }, - "terminal.integrated.defaultProfile.linux": "Python Venv" -} diff --git a/Language/rust/project/.vscode/extensions.json b/Language/rust/project/.vscode/extensions.json deleted file mode 100644 index d0e1dc7c..00000000 --- a/Language/rust/project/.vscode/extensions.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "recommendations": [ - "rust-lang.rust-analyzer", - "dustypomerleau.rust-syntax" - ] -} diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..1d31a3e5 --- /dev/null +++ b/Makefile @@ -0,0 +1,243 @@ +# DevBox Runtime Makefile +# This Makefile provides targets for building, testing, and managing the runtimectl tool + +# Variables +BINARY_NAME=runtimectl +TOOL_DIR=tool +BUILD_DIR=bin +GO_VERSION=1.21 +VERSION=1.0.0 +LDFLAGS=-ldflags "-X main.Version=$(VERSION) -X main.BuildTime=$(shell date -u '+%Y-%m-%d_%H:%M:%S')" + +# Default target +.PHONY: help +help: ## Show this help message + @echo "DevBox Runtime Makefile" + @echo "=======================" + @echo "" + @echo "Available targets:" + @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " %-20s %s\n", $$1, $$2}' $(MAKEFILE_LIST) + +# Build targets +.PHONY: build +build: ## Build the runtimectl binary + @echo "Building $(BINARY_NAME)..." + @mkdir -p $(BUILD_DIR) + @cd $(TOOL_DIR) && go build $(LDFLAGS) -o ../$(BUILD_DIR)/$(BINARY_NAME) ./cmd + +.PHONY: build-linux +build-linux: ## Build the runtimectl binary for Linux + @echo "Building $(BINARY_NAME) for Linux..." + @mkdir -p $(BUILD_DIR) + @cd $(TOOL_DIR) && GOOS=linux GOARCH=amd64 go build $(LDFLAGS) -o ../$(BUILD_DIR)/$(BINARY_NAME)-linux ./cmd + +.PHONY: build-windows +build-windows: ## Build the runtimectl binary for Windows + @echo "Building $(BINARY_NAME) for Windows..." + @mkdir -p $(BUILD_DIR) + @cd $(TOOL_DIR) && GOOS=windows GOARCH=amd64 go build $(LDFLAGS) -o ../$(BUILD_DIR)/$(BINARY_NAME)-windows.exe ./cmd + +.PHONY: build-darwin +build-darwin: ## Build the runtimectl binary for macOS + @echo "Building $(BINARY_NAME) for macOS..." + @mkdir -p $(BUILD_DIR) + @cd $(TOOL_DIR) && GOOS=darwin GOARCH=amd64 go build $(LDFLAGS) -o ../$(BUILD_DIR)/$(BINARY_NAME)-darwin ./cmd + +.PHONY: build-all +build-all: build-linux build-windows build-darwin ## Build binaries for all platforms + +# Development targets +.PHONY: dev +dev: build ## Build and install for development + @echo "Installing $(BINARY_NAME) for development..." + @cp $(BUILD_DIR)/$(BINARY_NAME) /usr/local/bin/$(BINARY_NAME) || echo "Failed to install to /usr/local/bin, you may need sudo" + +.PHONY: clean +clean: ## Clean build artifacts + @echo "Cleaning build artifacts..." + @rm -rf $(BUILD_DIR) + @cd $(TOOL_DIR) && go clean + +.PHONY: clean-all +clean-all: clean ## Clean all artifacts including Go cache + @echo "Cleaning all artifacts..." + @cd $(TOOL_DIR) && go clean -cache -modcache -testcache + +# Testing targets +.PHONY: test +test: ## Run tests + @echo "Running tests..." + @cd $(TOOL_DIR) && go test -v ./... + +.PHONY: test-coverage +test-coverage: ## Run tests with coverage + @echo "Running tests with coverage..." + @cd $(TOOL_DIR) && go test -v -coverprofile=coverage.out ./... + @cd $(TOOL_DIR) && go tool cover -html=coverage.out -o coverage.html + @echo "Coverage report generated: $(TOOL_DIR)/coverage.html" + +.PHONY: test-race +test-race: ## Run tests with race detection + @echo "Running tests with race detection..." + @cd $(TOOL_DIR) && go test -race -v ./... + +# Code quality targets +.PHONY: fmt +fmt: ## Format Go code + @echo "Formatting Go code..." + @cd $(TOOL_DIR) && go fmt ./... + +.PHONY: vet +vet: ## Run go vet + @echo "Running go vet..." + @cd $(TOOL_DIR) && go vet ./... + +.PHONY: lint +lint: ## Run golangci-lint + @echo "Running golangci-lint..." + @cd $(TOOL_DIR) && golangci-lint run + +.PHONY: check +check: fmt vet lint test ## Run all code quality checks + +# Dependency management +.PHONY: deps +deps: ## Download dependencies + @echo "Downloading dependencies..." + @cd $(TOOL_DIR) && go mod download + +.PHONY: deps-update +deps-update: ## Update dependencies + @echo "Updating dependencies..." + @cd $(TOOL_DIR) && go get -u ./... + @cd $(TOOL_DIR) && go mod tidy + +.PHONY: deps-vendor +deps-vendor: ## Vendor dependencies + @echo "Vendoring dependencies..." + @cd $(TOOL_DIR) && go mod vendor + +# Runtime management targets +.PHONY: scan +scan: build ## Scan runtime packages + @echo "Scanning runtime packages..." + @./$(BUILD_DIR)/$(BINARY_NAME) scan + +.PHONY: list +list: build ## List all runtime packages + @echo "Listing all runtime packages..." + @./$(BUILD_DIR)/$(BINARY_NAME) list + +.PHONY: validate +validate: build ## Validate runtime packages + @echo "Validating runtime packages..." + @./$(BUILD_DIR)/$(BINARY_NAME) validate + +.PHONY: generate-meta +generate-meta: build ## Generate runtime metadata + @echo "Generating runtime metadata..." + @./$(BUILD_DIR)/$(BINARY_NAME) generate-meta + +# CI/CD targets +.PHONY: ci-build-matrix +ci-build-matrix: build ## Generate CI build matrix + @echo "Generating CI build matrix..." + @./$(BUILD_DIR)/$(BINARY_NAME) ci build-matrix + +.PHONY: ci-generate-config +ci-generate-config: build ## Generate runtime configuration + @echo "Generating runtime configuration..." + @./$(BUILD_DIR)/$(BINARY_NAME) ci generate-config + +.PHONY: ci-generate-config-cn +ci-generate-config-cn: build ## Generate runtime configuration for CN + @echo "Generating runtime configuration for CN..." + @./$(BUILD_DIR)/$(BINARY_NAME) ci generate-config --cn + +.PHONY: ci-analyze-dependencies +ci-analyze-dependencies: build ## Analyze package dependencies + @echo "Analyzing package dependencies..." + @./$(BUILD_DIR)/$(BINARY_NAME) ci analyze-dependencies + +.PHONY: ci-build-order +ci-build-order: build ## Get build order based on dependencies + @echo "Getting build order..." + @./$(BUILD_DIR)/$(BINARY_NAME) ci build-order + +.PHONY: ci-dependency-graph +ci-dependency-graph: build ## Generate dependency graph + @echo "Generating dependency graph..." + @./$(BUILD_DIR)/$(BINARY_NAME) ci dependency-graph + +# Docker targets +.PHONY: docker-build +docker-build: ## Build Docker image for runtimectl + @echo "Building Docker image..." + @docker build -t runtimectl:$(VERSION) -f Dockerfile.tool . + +.PHONY: docker-run +docker-run: ## Run runtimectl in Docker + @echo "Running runtimectl in Docker..." + @docker run --rm -v $(PWD):/workspace -w /workspace runtimectl:$(VERSION) + +# Release targets +.PHONY: release-prep +release-prep: clean test build-all ## Prepare for release + @echo "Preparing release..." + @mkdir -p release + @cp $(BUILD_DIR)/$(BINARY_NAME)-linux release/ + @cp $(BUILD_DIR)/$(BINARY_NAME)-windows.exe release/ + @cp $(BUILD_DIR)/$(BINARY_NAME)-darwin release/ + @echo "Release artifacts prepared in release/ directory" + +.PHONY: release-tar +release-tar: release-prep ## Create release tarballs + @echo "Creating release tarballs..." + @cd release && tar -czf $(BINARY_NAME)-linux-$(VERSION).tar.gz $(BINARY_NAME)-linux + @cd release && tar -czf $(BINARY_NAME)-darwin-$(VERSION).tar.gz $(BINARY_NAME)-darwin + @cd release && zip $(BINARY_NAME)-windows-$(VERSION).zip $(BINARY_NAME)-windows.exe + @echo "Release tarballs created in release/ directory" + +# Installation targets +.PHONY: install +install: build ## Install runtimectl to system + @echo "Installing $(BINARY_NAME)..." + @sudo cp $(BUILD_DIR)/$(BINARY_NAME) /usr/local/bin/ + @sudo chmod +x /usr/local/bin/$(BINARY_NAME) + @echo "$(BINARY_NAME) installed to /usr/local/bin/" + +.PHONY: uninstall +uninstall: ## Uninstall runtimectl from system + @echo "Uninstalling $(BINARY_NAME)..." + @sudo rm -f /usr/local/bin/$(BINARY_NAME) + @echo "$(BINARY_NAME) uninstalled" + +# Development workflow +.PHONY: dev-setup +dev-setup: deps fmt vet ## Setup development environment + @echo "Development environment setup complete" + +.PHONY: pre-commit +pre-commit: fmt vet test ## Run pre-commit checks + @echo "Pre-commit checks completed" + +.PHONY: ci +ci: check build test-coverage ## Run CI pipeline + @echo "CI pipeline completed" + +# Utility targets +.PHONY: version +version: build ## Show version information + @./$(BUILD_DIR)/$(BINARY_NAME) --version + +.PHONY: info +info: ## Show build information + @echo "Build Information:" + @echo " Binary: $(BINARY_NAME)" + @echo " Version: $(VERSION)" + @echo " Go Version: $(GO_VERSION)" + @echo " Tool Directory: $(TOOL_DIR)" + @echo " Build Directory: $(BUILD_DIR)" + +# Default target +.DEFAULT_GOAL := help diff --git a/OS/debian-ssh/project/.vscode/extensions.json b/OS/debian-ssh/project/.vscode/extensions.json deleted file mode 100644 index 87ebf2ad..00000000 --- a/OS/debian-ssh/project/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally" - ] -} \ No newline at end of file diff --git a/OS/ubuntu-cuda/project/.vscode/extensions.json b/OS/ubuntu-cuda/project/.vscode/extensions.json deleted file mode 100644 index 87ebf2ad..00000000 --- a/OS/ubuntu-cuda/project/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally" - ] -} \ No newline at end of file diff --git a/OS/ubuntu-cuda/project/entrypoint.sh b/OS/ubuntu-cuda/project/entrypoint.sh deleted file mode 100644 index 5fddb409..00000000 --- a/OS/ubuntu-cuda/project/entrypoint.sh +++ /dev/null @@ -1 +0,0 @@ -./hello.sh \ No newline at end of file diff --git a/OS/ubuntu/project/.vscode/extensions.json b/OS/ubuntu/project/.vscode/extensions.json deleted file mode 100644 index 87ebf2ad..00000000 --- a/OS/ubuntu/project/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally" - ] -} \ No newline at end of file diff --git a/OS/ubuntu/project/entrypoint.sh b/OS/ubuntu/project/entrypoint.sh deleted file mode 100644 index 5fddb409..00000000 --- a/OS/ubuntu/project/entrypoint.sh +++ /dev/null @@ -1 +0,0 @@ -./hello.sh \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index fe7e0c4e..00000000 --- a/README.md +++ /dev/null @@ -1,54 +0,0 @@ -# devbox-runtime - -## Dockerfile Path -As the YAML and Docker builds are based on the Dockerfile's path, it's necessary to establish a standardized convention for Dockerfile placement. - -The top-level folders represent image categories, primarily divided into three types: -- OS -- Language -- Framework - -The second-level directories denote specific image type, such as ubuntu, python, golang, etc., which will serve as the RuntimeClass name. -The third-level directories correspond to specific versions, for example, go1.22.5, go1.23.0, etc. -All Dockerfiles pushed to the repository should strictly adhere to these conventions. Therefore, an example of a compliant Dockerfile path would be: -`/Language/go/go1.22.5/Dockerfile` - -If you need to trigger the packaging action, you should push directly to the main repository. This will trigger the action's build process and the generation of corresponding CRDs - -## Get CRD -All CRD (Custom Resource Definition) files corresponding to the runtimes are located in the yaml folder. You can get yaml as follow: -``` -git clone --filter=blob:none --sparse https://github.com/labring-actions/devbox-runtime.git -cd devbox-runtime -git sparse-checkout init --cone -git sparse-checkout set yaml -``` - -## Support Images - -### System Images -- Ubuntu 24.04 -- Ubuntu 22.04 - -### Language Images -- Go 1.23.0 -- Go 1.22.5 -- Python 3.12 -- Python 3.11 -- Python 3.10 -- OpenJDK 17 -- OpenJDK 11 -- Rust 1.8.0 -- Rust 1.79.0 -- Node.js 22 -- Node.js 21 -- Node.js 20 -- GCC - -### Framework Images -- Gin -- Hertz -- Spring Boot -- Flask -- Next.js -- Vue \ No newline at end of file diff --git a/Service/mcp/typescript-1-8/project/.vscode/extensions.json b/Service/mcp/typescript-1-8/project/.vscode/extensions.json deleted file mode 100644 index 564dcc09..00000000 --- a/Service/mcp/typescript-1-8/project/.vscode/extensions.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "recommendations": [ - "pomdtr.excalidraw-editor", - "editorconfig.editorconfig", - "lokalise.i18n-ally", - "esbenp.prettier-vscode", - "dbaeumer.vscode-eslint", - "burkeholland.simple-react-snippets", - "prisma.prisma", - "bradlc.vscode-tailwindcss" - ] -} \ No newline at end of file diff --git a/config-cn.json b/config-cn.json deleted file mode 100644 index f8a4003d..00000000 --- a/config-cn.json +++ /dev/null @@ -1,342 +0,0 @@ -{ - "runtime": { - "Framework": [ - { - "name": "vue", - "version": [ - { - "name": "v3.4.29", - "image": "ghcr.io/labring-actions/devbox/vue-v3.4.29:21501ba", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v3.4.29", - "image": "ghcr.io/labring-actions/devbox/vue-v3.4.29:4f84e72", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - } - ] - }, - { - "name": "gin", - "version": [ - { - "name": "v1.10.0", - "image": "ghcr.io/labring-actions/devbox/gin-v1.10.0:4f84e72", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - } - ] - }, - { - "name": "Vue.js", - "version": [ - { - "name": "v3.4.29", - "image": "ghcr.io/labring-actions/devbox/vue-v3.4.29:87fd59a", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - } - ] - }, - { - "name": "React", - "version": [ - { - "name": "18.2.0", - "image": "ghcr.io/labring-actions/devbox/react-18.2.0:01c23da", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "18.2.0", - "image": "ghcr.io/labring-actions/devbox/react-18.2.0:18ea94a", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "18.2.0", - "image": "ghcr.io/labring-actions/devbox/react-18.2.0:259d6a5", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "18.2.0", - "image": "ghcr.io/labring-actions/devbox/react-18.2.0:d885fdf", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "18.2.0", - "image": "ghcr.io/labring-actions/devbox/react-18.2.0:fb598ac", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "18.2.0", - "image": "ghcr.io/labring-actions/devbox/react-18.2.0:8acdc7f", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "18.2.0", - "image": "ghcr.io/labring-actions/devbox/react-18.2.0:30bb702", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "18.2.0", - "image": "ghcr.io/labring-actions/devbox/react-18.2.0:4770dac", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "18.2.0", - "image": "ghcr.io/labring-actions/devbox/react-18.2.0:4a31758", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "18.2.0", - "image": "ghcr.io/labring-actions/devbox/react-18.2.0:6c2c1cf", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - } - ] - }, - { - "name": "Angular", - "version": [ - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:4fa8443", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:00a8409", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:ab6b105", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:cbdde9b", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:555cad3", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:13a0568", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:c148b68", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:d885fdf", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:fb598ac", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:5d61ea0", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:9a73b50", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:4f3c21b", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:1d7d0f5", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:4770dac", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - } - ] - }, - { - "name": "Next.js", - "version": [ - { - "name": "14.2.5", - "image": "ghcr.io/labring-actions/devbox/next.js-14.2.5:4fa8443", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - } - ] - }, - { - "name": "Nuxt3", - "version": [ - { - "name": "v3.13", - "image": "ghcr.io/labring-actions/devbox/nuxt3-v3.13:4fa8443", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v3.13", - "image": "ghcr.io/labring-actions/devbox/nuxt3-v3.13:f378858", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - } - ] - }, - { - "name": "Nginx", - "version": [ - { - "name": "1.22.1", - "image": "ghcr.io/labring-actions/devbox/nginx-1.22.1:d0f0669", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "1.22.1", - "image": "ghcr.io/labring-actions/devbox/nginx-1.22.1:7a1d9c3", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - } - ] - }, - { - "name": "Gin", - "version": [ - { - "name": "v1.10.0", - "image": "ghcr.io/labring-actions/devbox/gin-v1.10.0:0afe6b2", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v1.10.0", - "image": "ghcr.io/labring-actions/devbox/gin-v1.10.0:5fc5ffc", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - } - ] - } - ], - "Language": [ - { - "name": "Python", - "version": [ - { - "name": "3.10", - "image": "ghcr.io/labring-actions/devbox/python-3.10:cf64360", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "3.11", - "image": "ghcr.io/labring-actions/devbox/python-3.11:cf64360", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "3.12", - "image": "ghcr.io/labring-actions/devbox/python-3.12:cf64360", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "3.10", - "image": "ghcr.io/labring-actions/devbox/python-3.10:c65128f", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "3.11", - "image": "ghcr.io/labring-actions/devbox/python-3.11:c65128f", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "3.12", - "image": "ghcr.io/labring-actions/devbox/python-3.12:c65128f", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "3.10", - "image": "ghcr.io/labring-actions/devbox/python-3.10:067ba72", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - }, - { - "name": "3.11", - "image": "ghcr.io/labring-actions/devbox/python-3.11:067ba72", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - }, - { - "name": "3.12", - "image": "ghcr.io/labring-actions/devbox/python-3.12:067ba72", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - } - ] - } - ], - "Custom": [], - "OS": [ - { - "name": "Ubuntu-cuda", - "version": [ - { - "name": "24.04", - "image": "ghcr.io/labring-actions/devbox/ubuntu-cuda-24.04:30d36f9", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "24.04", - "image": "ghcr.io/labring-actions/devbox/ubuntu-cuda-24.04:e730999", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - } - ] - } - ] - } -} \ No newline at end of file diff --git a/config.json b/config.json deleted file mode 100644 index 5517c3c4..00000000 --- a/config.json +++ /dev/null @@ -1,296 +0,0 @@ -{ - "runtime": { - "Framework": [ - { - "name": "Vue.js", - "version": [ - { - "name": "v3.4.29", - "image": "ghcr.io/labring-actions/devbox/vue-v3.4.29:87fd59", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - } - ] - }, - { - "name": "React", - "version": [ - { - "name": "18.2.0", - "image": "ghcr.io/labring-actions/devbox/react-18.2.0:01c23d", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "18.2.0", - "image": "ghcr.io/labring-actions/devbox/react-18.2.0:18ea94", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "18.2.0", - "image": "ghcr.io/labring-actions/devbox/react-18.2.0:259d6a", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "18.2.0", - "image": "ghcr.io/labring-actions/devbox/react-18.2.0:d885fd", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "18.2.0", - "image": "ghcr.io/labring-actions/devbox/react-18.2.0:fb598a", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "18.2.0", - "image": "ghcr.io/labring-actions/devbox/react-18.2.0:8acdc7", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "18.2.0", - "image": "ghcr.io/labring-actions/devbox/react-18.2.0:30bb70", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "18.2.0", - "image": "ghcr.io/labring-actions/devbox/react-18.2.0:4770da", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "18.2.0", - "image": "ghcr.io/labring-actions/devbox/react-18.2.0:4a3175", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "18.2.0", - "image": "ghcr.io/labring-actions/devbox/react-18.2.0:6c2c1c", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - } - ] - }, - { - "name": "Angular", - "version": [ - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:cbdde9", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:555cad", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:13a056", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:c148b6", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:d885fd", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:fb598a", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:5d61ea", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:9a73b5", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:4f3c21", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:1d7d0f", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v18", - "image": "ghcr.io/labring-actions/devbox/angular-v18:4770da", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - } - ] - }, - { - "name": "Next.js", - "version": [ - { - "name": "14.2.5", - "image": "ghcr.io/labring-actions/devbox/next.js-14.2.5:4fa844", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - } - ] - }, - { - "name": "Nuxt3", - "version": [ - { - "name": "v3.13", - "image": "ghcr.io/labring-actions/devbox/nuxt3-v3.13:4fa844", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v3.13", - "image": "ghcr.io/labring-actions/devbox/nuxt3-v3.13:f37885", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - } - ] - }, - { - "name": "Nginx", - "version": [ - { - "name": "1.22.1", - "image": "ghcr.io/labring-actions/devbox/nginx-1.22.1:d0f066", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "1.22.1", - "image": "ghcr.io/labring-actions/devbox/nginx-1.22.1:7a1d9c", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - } - ] - }, - { - "name": "Gin", - "version": [ - { - "name": "v1.10.0", - "image": "ghcr.io/labring-actions/devbox/gin-v1.10.0:0afe6b", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "v1.10.0", - "image": "ghcr.io/labring-actions/devbox/gin-v1.10.0:5fc5ff", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - } - ] - } - ], - "Language": [ - { - "name": "Python", - "version": [ - { - "name": "3.10", - "image": "ghcr.io/labring-actions/devbox/python-3.10:cf6436", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "3.11", - "image": "ghcr.io/labring-actions/devbox/python-3.11:cf6436", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "3.12", - "image": "ghcr.io/labring-actions/devbox/python-3.12:cf6436", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "3.10", - "image": "ghcr.io/labring-actions/devbox/python-3.10:c65128", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "3.11", - "image": "ghcr.io/labring-actions/devbox/python-3.11:c65128", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "3.12", - "image": "ghcr.io/labring-actions/devbox/python-3.12:c65128", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "3.10", - "image": "ghcr.io/labring-actions/devbox/python-3.10:067ba7", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - }, - { - "name": "3.11", - "image": "ghcr.io/labring-actions/devbox/python-3.11:067ba7", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - }, - { - "name": "3.12", - "image": "ghcr.io/labring-actions/devbox/python-3.12:067ba7", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - } - ] - } - ], - "Custom": [], - "OS": [ - { - "name": "Ubuntu-cuda", - "version": [ - { - "name": "24.04", - "image": "ghcr.io/labring-actions/devbox/ubuntu-cuda-24.04:30d36f", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "deprecated" - }, - { - "name": "24.04", - "image": "ghcr.io/labring-actions/devbox/ubuntu-cuda-24.04:e73099", - "config": "{\"appPorts\":[{\"name\":\"devbox-app-port\",\"port\":8080,\"protocol\":\"TCP\"}],\"ports\":[{\"containerPort\":22,\"name\":\"devbox-ssh-port\",\"protocol\":\"TCP\"}],\"releaseArgs\":[\"/home/devbox/project/entrypoint.sh\"],\"releaseCommand\":[\"/bin/bash\",\"-c\"],\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", - "state": "active" - } - ] - } - ] - } -} diff --git a/config/registry-cn.json b/config/registry-cn.json new file mode 100644 index 00000000..7c391e8a --- /dev/null +++ b/config/registry-cn.json @@ -0,0 +1,624 @@ +{ + "runtime": { + "Framework": [ + { + "name": "next.js", + "kind": "framework", + "version": [ + { + "name": "14.2.5", + "image": "ghcr.io/labring-actions/devbox/next.js-14.2.5:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "vue", + "kind": "framework", + "version": [ + { + "name": "v3.4.29", + "image": "ghcr.io/labring-actions/devbox/vue-v3.4.29:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "iris", + "kind": "framework", + "version": [ + { + "name": "v12.2.11", + "image": "ghcr.io/labring-actions/devbox/iris-v12.2.11:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "astro", + "kind": "framework", + "version": [ + { + "name": "4.10.0", + "image": "ghcr.io/labring-actions/devbox/astro-4.10.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "django", + "kind": "framework", + "version": [ + { + "name": "4.2.16", + "image": "ghcr.io/labring-actions/devbox/django-4.2.16:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "vert.x", + "kind": "framework", + "version": [ + { + "name": "4.5.10", + "image": "ghcr.io/labring-actions/devbox/vert.x-4.5.10:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "svelte", + "kind": "framework", + "version": [ + { + "name": "6.4.0", + "image": "ghcr.io/labring-actions/devbox/svelte-6.4.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "chi", + "kind": "framework", + "version": [ + { + "name": "v5.1.0", + "image": "ghcr.io/labring-actions/devbox/chi-v5.1.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "rocket", + "kind": "framework", + "version": [ + { + "name": "0.5.1", + "image": "ghcr.io/labring-actions/devbox/rocket-0.5.1:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "spring-boot", + "kind": "framework", + "version": [ + { + "name": "3.3.2", + "image": "ghcr.io/labring-actions/devbox/spring-boot-3.3.2:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "quarkus", + "kind": "framework", + "version": [ + { + "name": "3.16.1", + "image": "ghcr.io/labring-actions/devbox/quarkus-3.16.1:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "react", + "kind": "framework", + "version": [ + { + "name": "18.2.0", + "image": "ghcr.io/labring-actions/devbox/react-18.2.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "echo", + "kind": "framework", + "version": [ + { + "name": "v4.12.0", + "image": "ghcr.io/labring-actions/devbox/echo-v4.12.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "angular", + "kind": "framework", + "version": [ + { + "name": "v18", + "image": "ghcr.io/labring-actions/devbox/angular-v18:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "hugo", + "kind": "framework", + "version": [ + { + "name": "v0.135.0", + "image": "ghcr.io/labring-actions/devbox/hugo-v0.135.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "docusaurus", + "kind": "framework", + "version": [ + { + "name": "3.5.2", + "image": "ghcr.io/labring-actions/devbox/docusaurus-3.5.2:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "hexo", + "kind": "framework", + "version": [ + { + "name": "7.3.0", + "image": "ghcr.io/labring-actions/devbox/hexo-7.3.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "umi", + "kind": "framework", + "version": [ + { + "name": "4.3.27", + "image": "ghcr.io/labring-actions/devbox/umi-4.3.27:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "gin", + "kind": "framework", + "version": [ + { + "name": "v1.10.0", + "image": "ghcr.io/labring-actions/devbox/gin-v1.10.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "flask", + "kind": "framework", + "version": [ + { + "name": "3.0.3", + "image": "ghcr.io/labring-actions/devbox/flask-3.0.3:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "nuxt3", + "kind": "framework", + "version": [ + { + "name": "v3.13", + "image": "ghcr.io/labring-actions/devbox/nuxt3-v3.13:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "vitepress", + "kind": "framework", + "version": [ + { + "name": "1.4.0", + "image": "ghcr.io/labring-actions/devbox/vitepress-1.4.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "express.js", + "kind": "framework", + "version": [ + { + "name": "4.21.0", + "image": "ghcr.io/labring-actions/devbox/express.js-4.21.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "nginx", + "kind": "framework", + "version": [ + { + "name": "1.22.1", + "image": "ghcr.io/labring-actions/devbox/nginx-1.22.1:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "sealaf", + "kind": "framework", + "version": [ + { + "name": "1.0.0", + "image": "ghcr.io/labring-actions/devbox/sealaf-1.0.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + } + ], + "Language": [ + { + "name": "node.js", + "kind": "language", + "version": [ + { + "name": "18", + "image": "ghcr.io/labring-actions/devbox/node.js-18:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + }, + { + "name": "20", + "image": "ghcr.io/labring-actions/devbox/node.js-20:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + }, + { + "name": "22", + "image": "ghcr.io/labring-actions/devbox/node.js-22:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "php", + "kind": "language", + "version": [ + { + "name": "7.4", + "image": "ghcr.io/labring-actions/devbox/php-7.4:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + }, + { + "name": "8.2.20", + "image": "ghcr.io/labring-actions/devbox/php-8.2.20:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "cpp", + "kind": "language", + "version": [ + { + "name": "gcc-12.2.0", + "image": "ghcr.io/labring-actions/devbox/cpp-gcc-12.2.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "python", + "kind": "language", + "version": [ + { + "name": "3.12", + "image": "ghcr.io/labring-actions/devbox/python-3.12:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + }, + { + "name": "3.10", + "image": "ghcr.io/labring-actions/devbox/python-3.10:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + }, + { + "name": "3.11", + "image": "ghcr.io/labring-actions/devbox/python-3.11:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "c", + "kind": "language", + "version": [ + { + "name": "gcc-12.2.0", + "image": "ghcr.io/labring-actions/devbox/c-gcc-12.2.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "net", + "kind": "language", + "version": [ + { + "name": "8.0", + "image": "ghcr.io/labring-actions/devbox/net-8.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "java", + "kind": "language", + "version": [ + { + "name": "openjdk17", + "image": "ghcr.io/labring-actions/devbox/java-openjdk17:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "rust", + "kind": "language", + "version": [ + { + "name": "1.81.0", + "image": "ghcr.io/labring-actions/devbox/rust-1.81.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "go", + "kind": "language", + "version": [ + { + "name": "1.22.5", + "image": "ghcr.io/labring-actions/devbox/go-1.22.5:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + }, + { + "name": "1.23.0", + "image": "ghcr.io/labring-actions/devbox/go-1.23.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + } + ], + "OS": [ + { + "name": "ubuntu-cuda", + "kind": "os", + "version": [ + { + "name": "24.04", + "image": "ghcr.io/labring-actions/devbox/ubuntu-cuda-24.04:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "ubuntu", + "kind": "os", + "version": [ + { + "name": "24.04", + "image": "ghcr.io/labring-actions/devbox/ubuntu-24.04:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "debian-ssh", + "kind": "os", + "version": [ + { + "name": "12.6", + "image": "ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + } + ], + "Custom": [ + { + "name": "mcp", + "kind": "service", + "version": [ + { + "name": "mcp-proxy", + "image": "ghcr.io/labring-actions/devbox/mcp-mcp-proxy:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + }, + { + "name": "python-3-12", + "image": "ghcr.io/labring-actions/devbox/mcp-python-3-12:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + }, + { + "name": "csharp-1-0", + "image": "ghcr.io/labring-actions/devbox/mcp-csharp-1-0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + }, + { + "name": "spring-boot-3-3-2", + "image": "ghcr.io/labring-actions/devbox/mcp-spring-boot-3-3-2:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + }, + { + "name": "typescript-1-8", + "image": "ghcr.io/labring-actions/devbox/mcp-typescript-1-8:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/config/registry.json b/config/registry.json new file mode 100644 index 00000000..e05fd348 --- /dev/null +++ b/config/registry.json @@ -0,0 +1,624 @@ +{ + "runtime": { + "Framework": [ + { + "name": "docusaurus", + "kind": "framework", + "version": [ + { + "name": "3.5.2", + "image": "ghcr.io/labring-actions/devbox/docusaurus-3.5.2:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "react", + "kind": "framework", + "version": [ + { + "name": "18.2.0", + "image": "ghcr.io/labring-actions/devbox/react-18.2.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "umi", + "kind": "framework", + "version": [ + { + "name": "4.3.27", + "image": "ghcr.io/labring-actions/devbox/umi-4.3.27:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "chi", + "kind": "framework", + "version": [ + { + "name": "v5.1.0", + "image": "ghcr.io/labring-actions/devbox/chi-v5.1.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "svelte", + "kind": "framework", + "version": [ + { + "name": "6.4.0", + "image": "ghcr.io/labring-actions/devbox/svelte-6.4.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "vue", + "kind": "framework", + "version": [ + { + "name": "v3.4.29", + "image": "ghcr.io/labring-actions/devbox/vue-v3.4.29:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "spring-boot", + "kind": "framework", + "version": [ + { + "name": "3.3.2", + "image": "ghcr.io/labring-actions/devbox/spring-boot-3.3.2:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "angular", + "kind": "framework", + "version": [ + { + "name": "v18", + "image": "ghcr.io/labring-actions/devbox/angular-v18:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "flask", + "kind": "framework", + "version": [ + { + "name": "3.0.3", + "image": "ghcr.io/labring-actions/devbox/flask-3.0.3:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "hugo", + "kind": "framework", + "version": [ + { + "name": "v0.135.0", + "image": "ghcr.io/labring-actions/devbox/hugo-v0.135.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "vitepress", + "kind": "framework", + "version": [ + { + "name": "1.4.0", + "image": "ghcr.io/labring-actions/devbox/vitepress-1.4.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "iris", + "kind": "framework", + "version": [ + { + "name": "v12.2.11", + "image": "ghcr.io/labring-actions/devbox/iris-v12.2.11:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "sealaf", + "kind": "framework", + "version": [ + { + "name": "1.0.0", + "image": "ghcr.io/labring-actions/devbox/sealaf-1.0.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "astro", + "kind": "framework", + "version": [ + { + "name": "4.10.0", + "image": "ghcr.io/labring-actions/devbox/astro-4.10.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "vert.x", + "kind": "framework", + "version": [ + { + "name": "4.5.10", + "image": "ghcr.io/labring-actions/devbox/vert.x-4.5.10:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "quarkus", + "kind": "framework", + "version": [ + { + "name": "3.16.1", + "image": "ghcr.io/labring-actions/devbox/quarkus-3.16.1:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "gin", + "kind": "framework", + "version": [ + { + "name": "v1.10.0", + "image": "ghcr.io/labring-actions/devbox/gin-v1.10.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "nginx", + "kind": "framework", + "version": [ + { + "name": "1.22.1", + "image": "ghcr.io/labring-actions/devbox/nginx-1.22.1:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "echo", + "kind": "framework", + "version": [ + { + "name": "v4.12.0", + "image": "ghcr.io/labring-actions/devbox/echo-v4.12.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "express.js", + "kind": "framework", + "version": [ + { + "name": "4.21.0", + "image": "ghcr.io/labring-actions/devbox/express.js-4.21.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "django", + "kind": "framework", + "version": [ + { + "name": "4.2.16", + "image": "ghcr.io/labring-actions/devbox/django-4.2.16:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "rocket", + "kind": "framework", + "version": [ + { + "name": "0.5.1", + "image": "ghcr.io/labring-actions/devbox/rocket-0.5.1:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "hexo", + "kind": "framework", + "version": [ + { + "name": "7.3.0", + "image": "ghcr.io/labring-actions/devbox/hexo-7.3.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "next.js", + "kind": "framework", + "version": [ + { + "name": "14.2.5", + "image": "ghcr.io/labring-actions/devbox/next.js-14.2.5:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "nuxt3", + "kind": "framework", + "version": [ + { + "name": "v3.13", + "image": "ghcr.io/labring-actions/devbox/nuxt3-v3.13:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + } + ], + "Language": [ + { + "name": "python", + "kind": "language", + "version": [ + { + "name": "3.11", + "image": "ghcr.io/labring-actions/devbox/python-3.11:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + }, + { + "name": "3.12", + "image": "ghcr.io/labring-actions/devbox/python-3.12:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + }, + { + "name": "3.10", + "image": "ghcr.io/labring-actions/devbox/python-3.10:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "rust", + "kind": "language", + "version": [ + { + "name": "1.81.0", + "image": "ghcr.io/labring-actions/devbox/rust-1.81.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "c", + "kind": "language", + "version": [ + { + "name": "gcc-12.2.0", + "image": "ghcr.io/labring-actions/devbox/c-gcc-12.2.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "java", + "kind": "language", + "version": [ + { + "name": "openjdk17", + "image": "ghcr.io/labring-actions/devbox/java-openjdk17:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "cpp", + "kind": "language", + "version": [ + { + "name": "gcc-12.2.0", + "image": "ghcr.io/labring-actions/devbox/cpp-gcc-12.2.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "php", + "kind": "language", + "version": [ + { + "name": "7.4", + "image": "ghcr.io/labring-actions/devbox/php-7.4:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + }, + { + "name": "8.2.20", + "image": "ghcr.io/labring-actions/devbox/php-8.2.20:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "net", + "kind": "language", + "version": [ + { + "name": "8.0", + "image": "ghcr.io/labring-actions/devbox/net-8.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "go", + "kind": "language", + "version": [ + { + "name": "1.22.5", + "image": "ghcr.io/labring-actions/devbox/go-1.22.5:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + }, + { + "name": "1.23.0", + "image": "ghcr.io/labring-actions/devbox/go-1.23.0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "node.js", + "kind": "language", + "version": [ + { + "name": "20", + "image": "ghcr.io/labring-actions/devbox/node.js-20:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + }, + { + "name": "18", + "image": "ghcr.io/labring-actions/devbox/node.js-18:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + }, + { + "name": "22", + "image": "ghcr.io/labring-actions/devbox/node.js-22:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + } + ], + "OS": [ + { + "name": "ubuntu-cuda", + "kind": "os", + "version": [ + { + "name": "24.04", + "image": "ghcr.io/labring-actions/devbox/ubuntu-cuda-24.04:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "debian-ssh", + "kind": "os", + "version": [ + { + "name": "12.6", + "image": "ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + }, + { + "name": "ubuntu", + "kind": "os", + "version": [ + { + "name": "24.04", + "image": "ghcr.io/labring-actions/devbox/ubuntu-24.04:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + } + ], + "Custom": [ + { + "name": "mcp", + "kind": "service", + "version": [ + { + "name": "csharp-1-0", + "image": "ghcr.io/labring-actions/devbox/mcp-csharp-1-0:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + }, + { + "name": "typescript-1-8", + "image": "ghcr.io/labring-actions/devbox/mcp-typescript-1-8:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + }, + { + "name": "spring-boot-3-3-2", + "image": "ghcr.io/labring-actions/devbox/mcp-spring-boot-3-3-2:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + }, + { + "name": "python-3-12", + "image": "ghcr.io/labring-actions/devbox/mcp-python-3-12:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + }, + { + "name": "mcp-proxy", + "image": "ghcr.io/labring-actions/devbox/mcp-mcp-proxy:latest", + "config": "{\"appPorts\":null,\"ports\":null,\"releaseArgs\":null,\"releaseCommand\":null,\"user\":\"devbox\",\"workingDir\":\"/home/devbox/project\"}", + "state": "active", + "created": "0001-01-01T00:00:00Z", + "updated": "0001-01-01T00:00:00Z" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/configs/name.txt b/configs/name.txt deleted file mode 100644 index 4fe73b09..00000000 --- a/configs/name.txt +++ /dev/null @@ -1,41 +0,0 @@ -debian=none -debian-ssh=Debian -go=Go -java=Java -node.js=Node.js -php=PHP -python=Python -rust=Rust -flask=Flask -gin=Gin -next.js=Next.js -spring-boot=Spring Boot -vue=Vue.js -echo=Echo -chi=Chi -react=React -iris=Iris -django=Django -express.js=Express.js -hexo=Hexo -vert.x=Vert.x -nuxt3=Nuxt3 -vitepress=VitePress -laravel=Laravel -hugo=Hugo -net=.NET -docusaurus=Docusaurus -rocket=Rocket -net=.Net -umi=UmiJS -angular=Angular -astro=Astro -svelte=SvelteKit -ubuntu=Ubuntu -cpp=C++ -c=C -quarkus=Quarkus -nginx=Nginx -sealaf=Laf -ubuntu-cuda=Ubuntu-cuda -pytorch=Pytorch diff --git a/configs/port.txt b/configs/port.txt deleted file mode 100644 index 2c81e861..00000000 --- a/configs/port.txt +++ /dev/null @@ -1,41 +0,0 @@ -debian=none -debian-ssh=8080 -go=8080 -java=8080 -node.js=8080 -php=8080 -python=8080 -rust=8080 -flask=8080 -gin=8080 -next.js=3000 -spring-boot=8080 -vue=3000 -echo=8080 -chi=8080 -iris=8080 -react=3000 -django=8000 -express.js=3000 -hexo=4000 -vert.x=8888 -nuxt3=3000 -vitepress=4173 -laravel=8000 -hugo=1313 -net=8080 -docusaurus=3000 -rocket=8000 -net=8080 -umi=8000 -angular=4200 -astro=4321 -svelte=5173 -ubuntu=8080 -cpp=8080 -c=8080 -quarkus=8080 -nginx=80 -sealaf=2342 -ubuntu-cuda=8080 -pytorch=8080 diff --git a/configs/version.txt b/configs/version.txt deleted file mode 100644 index b0cc14ab..00000000 --- a/configs/version.txt +++ /dev/null @@ -1,2 +0,0 @@ -php=8.2.20 -node.js=22 diff --git a/deploy/demo/Kubefile b/deploy/demo/Kubefile deleted file mode 100644 index ec4f8592..00000000 --- a/deploy/demo/Kubefile +++ /dev/null @@ -1,8 +0,0 @@ -FROM scratch - -USER 65532:65532 - -COPY registry registry -COPY manifests manifests - -CMD ["kubectl apply -f manifests"] diff --git a/deploy/demo/manifests/runtime.yaml b/deploy/demo/manifests/runtime.yaml deleted file mode 100644 index d37b2952..00000000 --- a/deploy/demo/manifests/runtime.yaml +++ /dev/null @@ -1,36 +0,0 @@ -# Runtime and RuntimeClass demo -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: go-1-22-5 - namespace: devbox-system -spec: - classRef: go - config: - image: ghcr.io/labring-actions/devbox/go-1.22.5:8c965d6 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: sealos - workingDir: /home/sealos/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/sealos/project/entrypoint.sh - description: go 1.22.5 - version: "1.22.5" ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: go -spec: - title: "go" - kind: Language - description: go diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..20c64059 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,66 @@ +# DevBox Runtime 文档 + +## 概述 + +DevBox Runtime 是一个容器化开发环境管理系统,提供各种编程语言、框架和操作系统的预配置运行时环境。 + +## 目录结构 + +- `runtimes/` - 运行时包定义 + - `frameworks/` - 框架运行时(Vue, React, Angular等) + - `languages/` - 语言运行时(Python, Go, Node.js等) + - `operating-systems/` - 操作系统运行时(Ubuntu, Debian等) + - `services/` - 服务运行时(MCP等) + +- `tools/` - 工具和脚本 + - `build/` - 构建相关脚本 + - `generate/` - 生成相关脚本 + - `utils/` - 工具脚本 + - `common/` - 通用脚本 + +- `config/` - 配置文件 + - `registry.json` - 主配置文件 + - `registry-cn.json` - 中文版配置 + - `mappings/` - 映射配置 + +## 使用方法 + +### 使用 runtimectl 工具 + +```bash +# 列出所有可用的运行时 +./runtimectl list + +# 列出特定类型的运行时 +./runtimectl list-frameworks +./runtimectl list-languages +./runtimectl list-os + +# 查看运行时详细信息 +./runtimectl info vue v3.4.29 + +# 扫描并更新运行时元数据 +./runtimectl scan +./runtimectl generate-meta +``` + +### 构建和部署 + +```bash +# 构建并推送镜像 +./runtimectl ci build-and-push [--cn] + +# 生成运行时配置 +./runtimectl ci generate-config + +# 生成启动脚本 +./runtimectl ci generate-startup [--output ] +``` + +## 开发指南 + +请参考 [development.md](development.md) 了解如何为项目贡献代码。 + +## API 文档 + +请参考 [api/](api/) 目录了解详细的API文档。 diff --git a/docs/ci-integration.md b/docs/ci-integration.md new file mode 100644 index 00000000..949be199 --- /dev/null +++ b/docs/ci-integration.md @@ -0,0 +1,225 @@ +# CI/CD 集成指南 + +本文档介绍如何使用 `runtimectl` 工具来优化 GitHub Actions CI/CD 流程。 + +## 新增的 CI 命令 + +### 1. `ci build-matrix` - 生成构建矩阵 + +生成用于 GitHub Actions 矩阵构建的 Dockerfile 列表。 + +```bash +# 获取所有 Dockerfile +./runtimectl ci build-matrix + +# 获取变更的 Dockerfile(需要 git 历史) +./runtimectl ci build-matrix --changed --commit1 --commit2 +``` + +**输出格式**:JSON 数组,可直接用于 GitHub Actions matrix。 + +### 2. `ci image-name` - 生成镜像名称 + +根据 Dockerfile 路径和参数生成完整的镜像名称。 + +```bash +./runtimectl ci image-name +``` + +**示例**: +```bash +./runtimectl ci image-name "runtimes/frameworks/vue/v3.4.29/Dockerfile" "ghcr.io" "labring-actions" "latest" +# 输出: ghcr.io/labring-actions/devbox/vue-v3.4.29:latest +``` + +### 3. `ci build` - 构建镜像 + +构建 Docker 镜像,支持 CN 修改和推送选项。 + +```bash +./runtimectl ci build [--cn] [--push] +``` + +**选项**: +- `--cn`: 应用中国镜像源修改 +- `--push`: 构建后推送到仓库 + +### 4. `ci validate-build` - 验证构建配置 + +验证 Dockerfile 和构建配置的正确性。 + +```bash +./runtimectl ci validate-build +``` + +**验证内容**: +- Dockerfile 是否存在 +- 路径结构是否正确 +- 项目目录是否存在 + +### 5. `ci generate-config` - 生成运行时配置 + +生成或更新运行时配置文件。 + +```bash +./runtimectl ci generate-config [--cn] [--tag ] +``` + +**选项**: +- `--cn`: 生成中文版配置 +- `--tag`: 指定标签版本 + +## GitHub Actions 集成 + +### 优化后的工作流 + +新的工作流使用 `runtimectl` 替代了多个 shell 脚本,提供更统一和可靠的构建流程。 + +#### 主要改进: + +1. **统一的构建矩阵生成** + ```yaml + - name: Get build matrix + run: | + build_targets=$(./runtimectl ci build-matrix) + ``` + +2. **自动镜像名称生成** + ```yaml + - name: Generate image names + run: | + ghcr_image_name=$(./runtimectl ci image-name "${{ matrix.build_target }}" "ghcr.io" "${{ github.repository_owner }}" "${{ tag }}") + ``` + +3. **构建前验证** + ```yaml + - name: Validate build + run: | + ./runtimectl ci validate-build "${{ matrix.build_target }}" + ``` + +4. **统一的构建命令** + ```yaml + - name: Build and push images + run: | + ./runtimectl ci build "${{ matrix.build_target }}" "${{ image_name }}" --push + ``` + +### 工作流文件 + +- `docker-image.yml` - 主要的 Docker 镜像构建工作流 +- `runtimectl-demo.yml` - 演示工作流,展示所有 CI 命令的使用 + +## 使用示例 + +### 本地开发 + +```bash +# 构建 runtimectl +go build -o runtimectl cmd/main.go cmd/commands.go + +# 查看所有可用的运行时 +./runtimectl list + +# 生成构建矩阵 +./runtimectl ci build-matrix + +# 验证特定构建 +./runtimectl ci validate-build "runtimes/frameworks/vue/v3.4.29/Dockerfile" + +# 生成镜像名称 +./runtimectl ci image-name "runtimes/frameworks/vue/v3.4.29/Dockerfile" "ghcr.io" "myorg" "v1.0.0" + +# 构建镜像(不推送) +./runtimectl ci build "runtimes/frameworks/vue/v3.4.29/Dockerfile" "ghcr.io/myorg/devbox/vue-v3.4.29:v1.0.0" + +# 构建并推送镜像 +./runtimectl ci build "runtimes/frameworks/vue/v3.4.29/Dockerfile" "ghcr.io/myorg/devbox/vue-v3.4.29:v1.0.0" --push + +# 生成运行时配置 +./runtimectl ci generate-config --tag "v1.0.0" +``` + +### CI/CD 流程 + +1. **触发构建**:推送到 main 分支或手动触发 +2. **生成矩阵**:使用 `runtimectl ci build-matrix` 获取需要构建的 Dockerfile +3. **验证构建**:对每个 Dockerfile 进行验证 +4. **生成镜像名**:为每个构建目标生成镜像名称 +5. **构建镜像**:并行构建所有镜像 +6. **生成配置**:更新运行时配置文件 + +## 优势 + +### 1. **统一接口** +- 所有构建相关操作通过 `runtimectl` 统一管理 +- 减少了对多个 shell 脚本的依赖 + +### 2. **更好的错误处理** +- Go 代码提供更好的错误处理和日志输出 +- 统一的错误格式和退出码 + +### 3. **类型安全** +- 编译时检查,减少运行时错误 +- 更好的参数验证 + +### 4. **可维护性** +- 代码集中在一个地方,易于维护和扩展 +- 清晰的命令结构和文档 + +### 5. **可测试性** +- 每个命令都可以独立测试 +- 支持单元测试和集成测试 + +## 迁移指南 + +### 从旧脚本迁移 + +1. **替换脚本调用**: + ```bash + # 旧方式 + bash script/get_all_dockerfile.sh + + # 新方式 + ./runtimectl ci build-matrix + ``` + +2. **更新镜像名称生成**: + ```bash + # 旧方式 + bash script/get_image_name.sh "ghcr.io" "namespace" "dockerfile" "tag" + + # 新方式 + ./runtimectl ci image-name "dockerfile" "ghcr.io" "namespace" "tag" + ``` + +3. **简化构建流程**: + ```bash + # 旧方式 + bash script/build_and_push_images.sh "dockerfile" "image1" "image2" "is_cn" + + # 新方式 + ./runtimectl ci build "dockerfile" "image1" --push + ./runtimectl ci build "dockerfile" "image2" --cn --push + ``` + +## 故障排除 + +### 常见问题 + +1. **构建失败**:使用 `ci validate-build` 检查 Dockerfile 配置 +2. **镜像名称错误**:检查 Dockerfile 路径格式是否正确 +3. **权限问题**:确保 runtimectl 有执行权限 + +### 调试技巧 + +```bash +# 启用详细输出 +./runtimectl ci build-matrix -v + +# 检查特定包的详细信息 +./runtimectl info + +# 验证构建配置 +./runtimectl ci validate-build +``` diff --git a/docs/dependency-management.md b/docs/dependency-management.md new file mode 100644 index 00000000..182feae3 --- /dev/null +++ b/docs/dependency-management.md @@ -0,0 +1,214 @@ +# 依赖关系管理 + +本文档介绍如何使用新的依赖关系管理功能来优化Docker镜像构建过程。 + +## 概述 + +新的依赖关系管理系统解决了之前CI中base image和language image依赖关系不明确的问题,实现了: + +1. **动态依赖分析**:自动分析镜像间的依赖关系 +2. **分层构建**:按照依赖顺序构建镜像 +3. **依赖验证**:确保所有依赖都可用 +4. **可视化**:生成依赖关系图 + +## 依赖层次结构 + +``` +Level 0: Base Images (OS) +├── debian-ssh-12.6 +├── ubuntu-24.04 +└── ubuntu-cuda-24.04 + +Level 1: Language Images +├── node.js-20 (depends on debian-ssh-12.6) +├── python-3.12 (depends on debian-ssh-12.6) +├── go-1.22.5 (depends on debian-ssh-12.6) +└── java-openjdk17 (depends on debian-ssh-12.6) + +Level 2: Framework Images +├── react-18.2.0 (depends on node.js-20) +├── django-4.2.16 (depends on python-3.12) +├── spring-boot-3.3.2 (depends on java-openjdk17) +└── gin-v1.10.0 (depends on go-1.22.5) +``` + +## 新增命令 + +### 1. 依赖分析 + +```bash +# 分析所有包的依赖关系 +./runtimectl ci analyze-dependencies + +# 输出JSON格式的依赖图 +{ + "nodes": [...], + "levels": [ + ["base images"], + ["language images"], + ["framework images"] + ] +} +``` + +### 2. 构建顺序 + +```bash +# 获取基于依赖关系的构建顺序 +./runtimectl ci build-order + +# 输出按依赖顺序排列的Dockerfile路径数组 +``` + +### 3. 依赖验证 + +```bash +# 验证所有依赖关系是否正确 +./runtimectl ci validate-dependencies +``` + +### 4. 依赖图可视化 + +```bash +# 生成Mermaid格式的依赖关系图 +./runtimectl ci dependency-graph +``` + +### 5. 增强的构建矩阵 + +```bash +# 生成包含依赖关系的构建矩阵 +./runtimectl ci build-matrix --with-dependencies + +# 只构建变更的镜像及其依赖 +./runtimectl ci build-matrix --changed --commit1 --commit2 --with-dependencies +``` + +## CI工作流改进 + +### 分层构建流程 + +新的CI工作流实现了三层构建: + +1. **Base Images** → 构建操作系统基础镜像 +2. **Language Images** → 构建语言运行时镜像(依赖base images) +3. **Framework Images** → 构建框架应用镜像(依赖language images) + +### 工作流文件 + +- `docker-build.yml` - 更新后的主工作流,支持依赖分析 +- `docker-build-with-dependencies.yml` - 完整的分层构建工作流 + +### 关键改进 + +1. **动态依赖分析**:不再硬编码base images,而是动态分析 +2. **智能构建顺序**:根据依赖关系确定构建顺序 +3. **依赖验证**:构建前验证所有依赖都可用 +4. **可视化支持**:生成依赖关系图 + +## 使用示例 + +### 本地开发 + +```bash +# 1. 分析当前项目的依赖关系 +./runtimectl ci analyze-dependencies + +# 2. 验证依赖关系 +./runtimectl ci validate-dependencies + +# 3. 查看构建顺序 +./runtimectl ci build-order + +# 4. 生成依赖图 +./runtimectl ci dependency-graph +``` + +### CI/CD集成 + +```yaml +# 在GitHub Actions中使用 +- name: Analyze dependencies + run: | + ./runtimectl ci analyze-dependencies + +- name: Validate dependencies + run: | + ./runtimectl ci validate-dependencies + +- name: Get build order + run: | + build_order=$(./runtimectl ci build-order) + echo "build_order=$build_order" >> $GITHUB_OUTPUT +``` + +## 优势 + +1. **构建可靠性**:确保依赖镜像先构建完成 +2. **构建效率**:利用Docker layer缓存优化 +3. **维护性**:清晰的依赖关系,便于调试 +4. **扩展性**:支持复杂的依赖关系 +5. **可视化**:直观的依赖关系图 + +## 迁移指南 + +### 从旧工作流迁移 + +1. **更新CI调用**: + ```bash + # 旧方式 + ./runtimectl ci build-matrix + + # 新方式(推荐) + ./runtimectl ci build-matrix --with-dependencies + ``` + +2. **添加依赖验证**: + ```yaml + - name: Validate dependencies + run: ./runtimectl ci validate-dependencies + ``` + +3. **使用分层构建**: + - 使用 `docker-build-with-dependencies.yml` 工作流 + - 或更新现有工作流使用新的依赖分析功能 + +### 向后兼容 + +- 所有现有命令保持兼容 +- 新的 `--with-dependencies` 参数是可选的 +- 旧的工作流仍然可以正常工作 + +## 故障排除 + +### 常见问题 + +1. **依赖验证失败**: + ```bash + # 检查依赖关系 + ./runtimectl ci analyze-dependencies + + # 验证特定包的依赖 + ./runtimectl ci validate-dependencies + ``` + +2. **构建顺序问题**: + ```bash + # 查看构建顺序 + ./runtimectl ci build-order + + # 检查依赖图 + ./runtimectl ci dependency-graph + ``` + +3. **镜像引用更新失败**: + - 确保依赖镜像已构建完成 + - 检查镜像名称格式是否正确 + +## 最佳实践 + +1. **定期验证依赖**:在CI中添加依赖验证步骤 +2. **使用依赖图**:可视化复杂的依赖关系 +3. **分层构建**:利用分层构建优化构建时间 +4. **依赖文档**:维护清晰的依赖关系文档 +5. **测试依赖变更**:修改依赖时充分测试 diff --git a/docs/development.md b/docs/development.md new file mode 100644 index 00000000..82aa22f6 --- /dev/null +++ b/docs/development.md @@ -0,0 +1,35 @@ +# 开发指南 + +## 项目结构 + +项目采用模块化的目录结构,主要组件包括: + +- **runtimes/** - 运行时包定义 +- **tools/** - 构建和部署工具 +- **config/** - 配置文件管理 +- **api/** - Go API 代码 +- **cmd/** - 命令行工具入口 + +## 添加新的运行时 + +1. 在 `runtimes/` 下创建相应的目录结构 +2. 添加 Dockerfile 和项目文件 +3. 更新配置文件中的映射信息 +4. 运行 `./runtimectl scan` 更新元数据 + +## 构建流程 + +1. 修改代码或配置 +2. 运行 `./runtimectl ci generate-config` 生成配置 +3. 运行 `./runtimectl ci build-and-push [--cn]` 构建镜像 +4. 提交更改 + +## 测试 + +```bash +# 验证配置 +./runtimectl validate + +# 扫描运行时 +./runtimectl scan +``` diff --git a/docs/dg.md b/docs/dg.md new file mode 100644 index 00000000..5276c097 --- /dev/null +++ b/docs/dg.md @@ -0,0 +1,96 @@ +```mermaid +graph TD + runtimes_frameworks_docusaurus_3.5.2_Dockerfile["docusaurus-3.5.2"] + node.js_20 --> runtimes_frameworks_docusaurus_3.5.2_Dockerfile + runtimes_frameworks_hugo_v0.135.0_Dockerfile["hugo-v0.135.0"] + go_1.22.5 --> runtimes_frameworks_hugo_v0.135.0_Dockerfile + runtimes_frameworks_iris_v12.2.11_Dockerfile["iris-v12.2.11"] + go_1.22.5 --> runtimes_frameworks_iris_v12.2.11_Dockerfile + runtimes_frameworks_spring-boot_3.3.2_Dockerfile["spring-boot-3.3.2"] + java_openjdk17 --> runtimes_frameworks_spring-boot_3.3.2_Dockerfile + runtimes_frameworks_svelte_6.4.0_Dockerfile["svelte-6.4.0"] + node.js_20 --> runtimes_frameworks_svelte_6.4.0_Dockerfile + runtimes_languages_go_1.22.5_Dockerfile["go-1.22.5"] + debian_ssh_12.6 --> runtimes_languages_go_1.22.5_Dockerfile + runtimes_languages_go_1.23.0_Dockerfile["go-1.23.0"] + debian_ssh_12.6 --> runtimes_languages_go_1.23.0_Dockerfile + runtimes_languages_net_8.0_Dockerfile["net-8.0"] + debian_ssh_12.6 --> runtimes_languages_net_8.0_Dockerfile + runtimes_frameworks_express.js_4.21.0_Dockerfile["express.js-4.21.0"] + node.js_20 --> runtimes_frameworks_express.js_4.21.0_Dockerfile + runtimes_frameworks_gin_v1.10.0_Dockerfile["gin-v1.10.0"] + go_1.22.5 --> runtimes_frameworks_gin_v1.10.0_Dockerfile + runtimes_frameworks_vert.x_4.5.10_Dockerfile["vert.x-4.5.10"] + java_openjdk17 --> runtimes_frameworks_vert.x_4.5.10_Dockerfile + runtimes_languages_java_openjdk17_Dockerfile["java-openjdk17"] + debian_ssh_12.6 --> runtimes_languages_java_openjdk17_Dockerfile + runtimes_languages_python_3.10_Dockerfile["python-3.10"] + debian_ssh_12.6 --> runtimes_languages_python_3.10_Dockerfile + runtimes_languages_rust_1.81.0_Dockerfile["rust-1.81.0"] + debian_ssh_12.6 --> runtimes_languages_rust_1.81.0_Dockerfile + runtimes_operating-systems_debian-ssh_12.6_Dockerfile["debian-ssh-12.6"] + runtimes_operating-systems_ubuntu-cuda_24.04_Dockerfile["ubuntu-cuda-24.04"] + runtimes_frameworks_nuxt3_v3.13_Dockerfile["nuxt3-v3.13"] + node.js_20 --> runtimes_frameworks_nuxt3_v3.13_Dockerfile + runtimes_frameworks_quarkus_3.16.1_Dockerfile["quarkus-3.16.1"] + java_openjdk17 --> runtimes_frameworks_quarkus_3.16.1_Dockerfile + runtimes_frameworks_vue_v3.4.29_Dockerfile["vue-v3.4.29"] + node.js_20 --> runtimes_frameworks_vue_v3.4.29_Dockerfile + runtimes_languages_c_gcc-12.2.0_Dockerfile["c-gcc-12.2.0"] + debian_ssh_12.6 --> runtimes_languages_c_gcc-12.2.0_Dockerfile + runtimes_frameworks_echo_v4.12.0_Dockerfile["echo-v4.12.0"] + go_1.22.5 --> runtimes_frameworks_echo_v4.12.0_Dockerfile + runtimes_frameworks_flask_3.0.3_Dockerfile["flask-3.0.3"] + python_3.12 --> runtimes_frameworks_flask_3.0.3_Dockerfile + runtimes_frameworks_react_18.2.0_Dockerfile["react-18.2.0"] + node.js_22 --> runtimes_frameworks_react_18.2.0_Dockerfile + runtimes_languages_node.js_18_Dockerfile["node.js-18"] + debian_ssh_12.6 --> runtimes_languages_node.js_18_Dockerfile + runtimes_languages_php_8.2.20_Dockerfile["php-8.2.20"] + debian_ssh_12.6 --> runtimes_languages_php_8.2.20_Dockerfile + runtimes_languages_python_3.11_Dockerfile["python-3.11"] + debian_ssh_12.6 --> runtimes_languages_python_3.11_Dockerfile + runtimes_services_mcp_csharp-1-0_Dockerfile["mcp-csharp-1-0"] + debian_ssh_12.6 --> runtimes_services_mcp_csharp-1-0_Dockerfile + runtimes_services_mcp_mcp-proxy_Dockerfile["mcp-mcp-proxy"] + debian_ssh_12.6 --> runtimes_services_mcp_mcp-proxy_Dockerfile + runtimes_frameworks_next.js_14.2.5_Dockerfile["next.js-14.2.5"] + node.js_20 --> runtimes_frameworks_next.js_14.2.5_Dockerfile + runtimes_frameworks_nginx_1.22.1_Dockerfile["nginx-1.22.1"] + node.js_20 --> runtimes_frameworks_nginx_1.22.1_Dockerfile + runtimes_languages_cpp_gcc-12.2.0_Dockerfile["cpp-gcc-12.2.0"] + debian_ssh_12.6 --> runtimes_languages_cpp_gcc-12.2.0_Dockerfile + runtimes_languages_python_3.12_Dockerfile["python-3.12"] + debian_ssh_12.6 --> runtimes_languages_python_3.12_Dockerfile + runtimes_operating-systems_ubuntu_24.04_Dockerfile["ubuntu-24.04"] + runtimes_services_mcp_spring-boot-3-3-2_Dockerfile["mcp-spring-boot-3-3-2"] + debian_ssh_12.6 --> runtimes_services_mcp_spring-boot-3-3-2_Dockerfile + runtimes_services_mcp_typescript-1-8_Dockerfile["mcp-typescript-1-8"] + debian_ssh_12.6 --> runtimes_services_mcp_typescript-1-8_Dockerfile + runtimes_frameworks_astro_4.10.0_Dockerfile["astro-4.10.0"] + node.js_20 --> runtimes_frameworks_astro_4.10.0_Dockerfile + runtimes_frameworks_hexo_7.3.0_Dockerfile["hexo-7.3.0"] + node.js_20 --> runtimes_frameworks_hexo_7.3.0_Dockerfile + runtimes_frameworks_rocket_0.5.1_Dockerfile["rocket-0.5.1"] + rust_1.81.0 --> runtimes_frameworks_rocket_0.5.1_Dockerfile + runtimes_frameworks_umi_4.3.27_Dockerfile["umi-4.3.27"] + node.js_20 --> runtimes_frameworks_umi_4.3.27_Dockerfile + runtimes_frameworks_angular_v18_Dockerfile["angular-v18"] + node.js_20 --> runtimes_frameworks_angular_v18_Dockerfile + runtimes_frameworks_chi_v5.1.0_Dockerfile["chi-v5.1.0"] + go_1.22.5 --> runtimes_frameworks_chi_v5.1.0_Dockerfile + runtimes_frameworks_vitepress_1.4.0_Dockerfile["vitepress-1.4.0"] + node.js_20 --> runtimes_frameworks_vitepress_1.4.0_Dockerfile + runtimes_languages_node.js_22_Dockerfile["node.js-22"] + debian_ssh_12.6 --> runtimes_languages_node.js_22_Dockerfile + runtimes_services_mcp_python-3-12_Dockerfile["mcp-python-3-12"] + debian_ssh_12.6 --> runtimes_services_mcp_python-3-12_Dockerfile + runtimes_frameworks_django_4.2.16_Dockerfile["django-4.2.16"] + python_3.12 --> runtimes_frameworks_django_4.2.16_Dockerfile + runtimes_frameworks_sealaf_1.0.0_Dockerfile["sealaf-1.0.0"] + node.js_20 --> runtimes_frameworks_sealaf_1.0.0_Dockerfile + runtimes_languages_node.js_20_Dockerfile["node.js-20"] + debian_ssh_12.6 --> runtimes_languages_node.js_20_Dockerfile + runtimes_languages_php_7.4_Dockerfile["php-7.4"] + debian_ssh_12.6 --> runtimes_languages_php_7.4_Dockerfile +``` diff --git a/docs/three-levels-build.md b/docs/three-levels-build.md new file mode 100644 index 00000000..1a910f7a --- /dev/null +++ b/docs/three-levels-build.md @@ -0,0 +1,223 @@ +# 三层构建方案 + +本文档介绍如何使用简化的三层构建方案来解决GitHub Actions矩阵并行构建不按`build_order`执行的问题。 + +## 方案概述 + +### 三层结构 + +1. **Level 0 (OS层)**: 操作系统基础镜像 + - 无依赖,可以并行构建 + - 例如:debian-ssh, ubuntu, ubuntu-cuda + +2. **Level 1 (Language层)**: 语言运行时镜像 + - 依赖OS层镜像 + - 例如:node.js, python, go, java + +3. **Level 2 (Framework层)**: 框架应用镜像 + - 依赖Language层镜像 + - 例如:react, django, spring-boot, gin + +### 构建流程 + +``` +Level 0 (OS) → Level 1 (Language) → Level 2 (Framework) + ↓ ↓ ↓ + 并行构建 并行构建 并行构建 +``` + +## 核心组件 + +### 1. 可重用的构建Action + +**文件**: `.github/actions/build-level/action.yml` + +**功能**: +- 处理单个依赖层的所有构建逻辑 +- 支持依赖镜像引用更新 +- 支持多镜像仓库推送 +- 可配置的构建参数 + +**输入参数**: +- `level_index`: 依赖层索引 (0, 1, 2) +- `level_packages`: 该层的包列表 (JSON数组) +- `tag`: 镜像标签 +- `tag_cn`: CN镜像标签 +- `aliyun_enabled`: 是否启用阿里云镜像仓库 + +### 2. 三层构建工作流 + +**文件**: `.github/workflows/docker-build-three-levels.yml` + +**特点**: +- 使用可重用的`build-level` action +- 三层串行,层内并行 +- 清晰的依赖关系 +- 简化的配置 + +## 使用方法 + +### 1. 本地测试 + +```bash +# 查看依赖层次 +./bin/runtimectl ci analyze-dependencies + +# 查看构建顺序 +./bin/runtimectl ci build-order + +# 验证依赖关系 +./bin/runtimectl ci validate-dependencies +``` + +### 2. 触发构建 + +```bash +# 手动触发工作流 +gh workflow run docker-build-three-levels.yml \ + --field tag=latest \ + --field build_all=true \ + --field aliyun_enabled=false +``` + +### 3. 监控构建 + +工作流会显示: +- 每个层次的包数量 +- 构建进度 +- 依赖关系图 + +## 技术实现 + +### 依赖层次计算 + +```go +// 在 runtime.go 中 +switch pkg.Kind { +case "os": + node.Level = 0 // Base level +case "language": + node.Level = 1 // Language level +case "framework", "service": + node.Level = 2 // Framework level +} +``` + +### 工作流依赖关系 + +```yaml +# Level 0: 无依赖 +build-level-0: + needs: define-matrix + +# Level 1: 依赖 Level 0 +build-level-1: + needs: [define-matrix, build-level-0] + +# Level 2: 依赖 Level 1 +build-level-2: + needs: [define-matrix, build-level-1] +``` + +### 条件构建 + +```yaml +# 只有当层中有包时才构建 +if: ${{ fromJson(needs.define-matrix.outputs.level_0) != null && length(fromJson(needs.define-matrix.outputs.level_0)) > 0 }} +``` + +## 优势 + +### 1. 简化维护 +- 通用构建逻辑抽取到可重用action +- 减少代码重复 +- 易于修改和扩展 + +### 2. 清晰结构 +- 三层固定结构,易于理解 +- 明确的依赖关系 +- 可预测的构建顺序 + +### 3. 高效构建 +- 层内并行,层间串行 +- 平衡构建速度和依赖关系 +- 充分利用并行资源 + +### 4. 灵活配置 +- 支持条件构建 +- 支持多镜像仓库 +- 支持增量构建 + +## 与原始方案对比 + +| 特性 | 原始矩阵构建 | 三层构建方案 | +|------|-------------|-------------| +| 构建顺序 | 无保证 | 严格按依赖顺序 | +| 代码复用 | 低 | 高 | +| 维护复杂度 | 高 | 低 | +| 构建效率 | 高 | 中等 | +| 依赖保证 | 无 | 100% | + +## 迁移指南 + +### 从原始工作流迁移 + +1. **替换工作流文件**: + ```bash + # 备份原始工作流 + mv .github/workflows/docker-build.yml .github/workflows/docker-build.yml.backup + + # 使用新的三层构建工作流 + cp .github/workflows/docker-build-three-levels.yml .github/workflows/docker-build.yml + ``` + +2. **验证构建**: + ```bash + # 测试依赖分析 + ./bin/runtimectl ci analyze-dependencies + + # 测试构建顺序 + ./bin/runtimectl ci build-order + ``` + +3. **监控构建**: + - 检查每个层次的包数量 + - 验证依赖关系 + - 确认构建顺序 + +## 扩展性 + +### 添加新的依赖层 + +如果需要支持更复杂的依赖关系,可以: + +1. **修改层次计算逻辑**: + ```go + // 在 runtime.go 中添加新的层次 + case "middleware": + node.Level = 1.5 // 中间层 + ``` + +2. **添加新的构建作业**: + ```yaml + build-level-1.5: + needs: [define-matrix, build-level-0] + # ... 构建逻辑 + ``` + +3. **更新依赖关系**: + ```yaml + build-level-2: + needs: [define-matrix, build-level-1.5] # 更新依赖 + ``` + +## 总结 + +三层构建方案通过以下方式解决了原始问题: + +1. **依赖顺序保证**: 严格按三层顺序构建 +2. **代码复用**: 通用构建逻辑抽取到可重用action +3. **简化维护**: 清晰的三层结构,易于理解和修改 +4. **高效构建**: 层内并行,层间串行,平衡效率和依赖关系 + +这个方案既解决了依赖顺序问题,又保持了代码的简洁性和可维护性。 diff --git a/runtimectl b/runtimectl deleted file mode 100755 index caedda47..00000000 Binary files a/runtimectl and /dev/null differ diff --git a/Framework/angular/update_cn_dockerfile.sh b/runtimes/frameworks/angular/update_cn_dockerfile.sh similarity index 100% rename from Framework/angular/update_cn_dockerfile.sh rename to runtimes/frameworks/angular/update_cn_dockerfile.sh diff --git a/Framework/angular/v18/Dockerfile b/runtimes/frameworks/angular/v18/Dockerfile similarity index 81% rename from Framework/angular/v18/Dockerfile rename to runtimes/frameworks/angular/v18/Dockerfile index 6378af83..e187c85c 100644 --- a/Framework/angular/v18/Dockerfile +++ b/runtimes/frameworks/angular/v18/Dockerfile @@ -1,12 +1,12 @@ -FROM ghcr.io/labring-actions/devbox/node.js-20:3b6f7a9 +FROM ghcr.io/labring-actions/devbox/node.js-20:latest USER root RUN cd /home/devbox/project && \ rm -rf ./* && \ mkdir -p /usr/lib/node_modules && \ chown -R devbox:devbox /usr/lib/node_modules - -COPY /Framework/angular/v18/project /home/devbox/project + +COPY project /home/devbox/project RUN chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh @@ -22,5 +22,5 @@ npm install -g @angular/cli && \ npm install -g serve && \ npm install && \ npm run build - -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file + +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/angular/v18/project/.editorconfig b/runtimes/frameworks/angular/v18/project/.editorconfig similarity index 100% rename from Framework/angular/v18/project/.editorconfig rename to runtimes/frameworks/angular/v18/project/.editorconfig diff --git a/Framework/angular/v18/project/.gitignore b/runtimes/frameworks/angular/v18/project/.gitignore similarity index 100% rename from Framework/angular/v18/project/.gitignore rename to runtimes/frameworks/angular/v18/project/.gitignore diff --git a/Framework/angular/v18/project/README.md b/runtimes/frameworks/angular/v18/project/README.md similarity index 100% rename from Framework/angular/v18/project/README.md rename to runtimes/frameworks/angular/v18/project/README.md diff --git a/Framework/angular/v18/project/angular.json b/runtimes/frameworks/angular/v18/project/angular.json similarity index 100% rename from Framework/angular/v18/project/angular.json rename to runtimes/frameworks/angular/v18/project/angular.json diff --git a/Framework/angular/v18/project/entrypoint.sh b/runtimes/frameworks/angular/v18/project/entrypoint.sh similarity index 100% rename from Framework/angular/v18/project/entrypoint.sh rename to runtimes/frameworks/angular/v18/project/entrypoint.sh diff --git a/Framework/angular/v18/project/package-lock.json b/runtimes/frameworks/angular/v18/project/package-lock.json similarity index 100% rename from Framework/angular/v18/project/package-lock.json rename to runtimes/frameworks/angular/v18/project/package-lock.json diff --git a/Framework/angular/v18/project/package.json b/runtimes/frameworks/angular/v18/project/package.json similarity index 100% rename from Framework/angular/v18/project/package.json rename to runtimes/frameworks/angular/v18/project/package.json diff --git a/Framework/angular/v18/project/public/favicon.ico b/runtimes/frameworks/angular/v18/project/public/favicon.ico similarity index 100% rename from Framework/angular/v18/project/public/favicon.ico rename to runtimes/frameworks/angular/v18/project/public/favicon.ico diff --git a/Framework/django/4.2.16/project/project/__init__.py b/runtimes/frameworks/angular/v18/project/src/app/app.component.css similarity index 100% rename from Framework/django/4.2.16/project/project/__init__.py rename to runtimes/frameworks/angular/v18/project/src/app/app.component.css diff --git a/Framework/angular/v18/project/src/app/app.component.html b/runtimes/frameworks/angular/v18/project/src/app/app.component.html similarity index 100% rename from Framework/angular/v18/project/src/app/app.component.html rename to runtimes/frameworks/angular/v18/project/src/app/app.component.html diff --git a/Framework/angular/v18/project/src/app/app.component.spec.ts b/runtimes/frameworks/angular/v18/project/src/app/app.component.spec.ts similarity index 100% rename from Framework/angular/v18/project/src/app/app.component.spec.ts rename to runtimes/frameworks/angular/v18/project/src/app/app.component.spec.ts diff --git a/Framework/angular/v18/project/src/app/app.component.ts b/runtimes/frameworks/angular/v18/project/src/app/app.component.ts similarity index 100% rename from Framework/angular/v18/project/src/app/app.component.ts rename to runtimes/frameworks/angular/v18/project/src/app/app.component.ts diff --git a/Framework/angular/v18/project/src/app/app.config.ts b/runtimes/frameworks/angular/v18/project/src/app/app.config.ts similarity index 100% rename from Framework/angular/v18/project/src/app/app.config.ts rename to runtimes/frameworks/angular/v18/project/src/app/app.config.ts diff --git a/Framework/angular/v18/project/src/app/app.routes.ts b/runtimes/frameworks/angular/v18/project/src/app/app.routes.ts similarity index 100% rename from Framework/angular/v18/project/src/app/app.routes.ts rename to runtimes/frameworks/angular/v18/project/src/app/app.routes.ts diff --git a/Framework/angular/v18/project/src/index.html b/runtimes/frameworks/angular/v18/project/src/index.html similarity index 100% rename from Framework/angular/v18/project/src/index.html rename to runtimes/frameworks/angular/v18/project/src/index.html diff --git a/Framework/angular/v18/project/src/main.ts b/runtimes/frameworks/angular/v18/project/src/main.ts similarity index 100% rename from Framework/angular/v18/project/src/main.ts rename to runtimes/frameworks/angular/v18/project/src/main.ts diff --git a/Framework/angular/v18/project/src/styles.css b/runtimes/frameworks/angular/v18/project/src/styles.css similarity index 100% rename from Framework/angular/v18/project/src/styles.css rename to runtimes/frameworks/angular/v18/project/src/styles.css diff --git a/Framework/angular/v18/project/tsconfig.app.json b/runtimes/frameworks/angular/v18/project/tsconfig.app.json similarity index 100% rename from Framework/angular/v18/project/tsconfig.app.json rename to runtimes/frameworks/angular/v18/project/tsconfig.app.json diff --git a/Framework/angular/v18/project/tsconfig.json b/runtimes/frameworks/angular/v18/project/tsconfig.json similarity index 100% rename from Framework/angular/v18/project/tsconfig.json rename to runtimes/frameworks/angular/v18/project/tsconfig.json diff --git a/Framework/angular/v18/project/tsconfig.spec.json b/runtimes/frameworks/angular/v18/project/tsconfig.spec.json similarity index 100% rename from Framework/angular/v18/project/tsconfig.spec.json rename to runtimes/frameworks/angular/v18/project/tsconfig.spec.json diff --git a/Framework/express.js/4.21.0/Dockerfile b/runtimes/frameworks/astro/4.10.0/Dockerfile similarity index 62% rename from Framework/express.js/4.21.0/Dockerfile rename to runtimes/frameworks/astro/4.10.0/Dockerfile index 49e1b776..4506627e 100644 --- a/Framework/express.js/4.21.0/Dockerfile +++ b/runtimes/frameworks/astro/4.10.0/Dockerfile @@ -1,16 +1,16 @@ -FROM ghcr.io/labring-actions/devbox/node.js-20:3b6f7a9 +FROM ghcr.io/labring-actions/devbox/node.js-20:latest USER root RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Framework/express.js/4.21.0/project /home/devbox/project +COPY project /home/devbox/project RUN chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh - + USER devbox RUN cd /home/devbox/project && \ npm install - -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file + +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/astro/4.10.0/project/.gitignore b/runtimes/frameworks/astro/4.10.0/project/.gitignore similarity index 100% rename from Framework/astro/4.10.0/project/.gitignore rename to runtimes/frameworks/astro/4.10.0/project/.gitignore diff --git a/Framework/astro/4.10.0/project/README.md b/runtimes/frameworks/astro/4.10.0/project/README.md similarity index 100% rename from Framework/astro/4.10.0/project/README.md rename to runtimes/frameworks/astro/4.10.0/project/README.md diff --git a/Framework/astro/4.10.0/project/astro.config.mjs b/runtimes/frameworks/astro/4.10.0/project/astro.config.mjs similarity index 100% rename from Framework/astro/4.10.0/project/astro.config.mjs rename to runtimes/frameworks/astro/4.10.0/project/astro.config.mjs diff --git a/Framework/astro/4.10.0/project/entrypoint.sh b/runtimes/frameworks/astro/4.10.0/project/entrypoint.sh similarity index 100% rename from Framework/astro/4.10.0/project/entrypoint.sh rename to runtimes/frameworks/astro/4.10.0/project/entrypoint.sh diff --git a/Framework/astro/4.10.0/project/package-lock.json b/runtimes/frameworks/astro/4.10.0/project/package-lock.json similarity index 100% rename from Framework/astro/4.10.0/project/package-lock.json rename to runtimes/frameworks/astro/4.10.0/project/package-lock.json diff --git a/Framework/astro/4.10.0/project/package.json b/runtimes/frameworks/astro/4.10.0/project/package.json similarity index 100% rename from Framework/astro/4.10.0/project/package.json rename to runtimes/frameworks/astro/4.10.0/project/package.json diff --git a/Framework/astro/4.10.0/project/public/favicon.svg b/runtimes/frameworks/astro/4.10.0/project/public/favicon.svg similarity index 100% rename from Framework/astro/4.10.0/project/public/favicon.svg rename to runtimes/frameworks/astro/4.10.0/project/public/favicon.svg diff --git a/Framework/astro/4.10.0/project/src/components/Card.astro b/runtimes/frameworks/astro/4.10.0/project/src/components/Card.astro similarity index 100% rename from Framework/astro/4.10.0/project/src/components/Card.astro rename to runtimes/frameworks/astro/4.10.0/project/src/components/Card.astro diff --git a/Framework/astro/4.10.0/project/src/env.d.ts b/runtimes/frameworks/astro/4.10.0/project/src/env.d.ts similarity index 100% rename from Framework/astro/4.10.0/project/src/env.d.ts rename to runtimes/frameworks/astro/4.10.0/project/src/env.d.ts diff --git a/Framework/astro/4.10.0/project/src/layouts/Layout.astro b/runtimes/frameworks/astro/4.10.0/project/src/layouts/Layout.astro similarity index 100% rename from Framework/astro/4.10.0/project/src/layouts/Layout.astro rename to runtimes/frameworks/astro/4.10.0/project/src/layouts/Layout.astro diff --git a/Framework/astro/4.10.0/project/src/pages/index.astro b/runtimes/frameworks/astro/4.10.0/project/src/pages/index.astro similarity index 100% rename from Framework/astro/4.10.0/project/src/pages/index.astro rename to runtimes/frameworks/astro/4.10.0/project/src/pages/index.astro diff --git a/Framework/astro/4.10.0/project/tsconfig.json b/runtimes/frameworks/astro/4.10.0/project/tsconfig.json similarity index 100% rename from Framework/astro/4.10.0/project/tsconfig.json rename to runtimes/frameworks/astro/4.10.0/project/tsconfig.json diff --git a/Framework/astro/update_cn_dockerfile.sh b/runtimes/frameworks/astro/update_cn_dockerfile.sh similarity index 100% rename from Framework/astro/update_cn_dockerfile.sh rename to runtimes/frameworks/astro/update_cn_dockerfile.sh diff --git a/Framework/chi/update_cn_dockerfile.sh b/runtimes/frameworks/chi/update_cn_dockerfile.sh similarity index 100% rename from Framework/chi/update_cn_dockerfile.sh rename to runtimes/frameworks/chi/update_cn_dockerfile.sh diff --git a/Framework/chi/v5.1.0/Dockerfile b/runtimes/frameworks/chi/v5.1.0/Dockerfile similarity index 66% rename from Framework/chi/v5.1.0/Dockerfile rename to runtimes/frameworks/chi/v5.1.0/Dockerfile index 6c894eef..74001087 100644 --- a/Framework/chi/v5.1.0/Dockerfile +++ b/runtimes/frameworks/chi/v5.1.0/Dockerfile @@ -1,18 +1,18 @@ -FROM ghcr.io/labring-actions/devbox/go-1.22.5:3b6f7a9 +FROM ghcr.io/labring-actions/devbox/go-1.22.5:latest RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Framework/chi/v5.1.0/project /home/devbox/project +COPY project /home/devbox/project RUN chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh - + USER devbox RUN cd /home/devbox/project && \ go mod tidy && \ go build -o main main.go USER root -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/chi/v5.1.0/project/README.md b/runtimes/frameworks/chi/v5.1.0/project/README.md similarity index 100% rename from Framework/chi/v5.1.0/project/README.md rename to runtimes/frameworks/chi/v5.1.0/project/README.md diff --git a/Framework/chi/v5.1.0/project/entrypoint.sh b/runtimes/frameworks/chi/v5.1.0/project/entrypoint.sh similarity index 100% rename from Framework/chi/v5.1.0/project/entrypoint.sh rename to runtimes/frameworks/chi/v5.1.0/project/entrypoint.sh diff --git a/Framework/chi/v5.1.0/project/go.mod b/runtimes/frameworks/chi/v5.1.0/project/go.mod similarity index 100% rename from Framework/chi/v5.1.0/project/go.mod rename to runtimes/frameworks/chi/v5.1.0/project/go.mod diff --git a/Framework/chi/v5.1.0/project/go.sum b/runtimes/frameworks/chi/v5.1.0/project/go.sum similarity index 100% rename from Framework/chi/v5.1.0/project/go.sum rename to runtimes/frameworks/chi/v5.1.0/project/go.sum diff --git a/Framework/chi/v5.1.0/project/main.go b/runtimes/frameworks/chi/v5.1.0/project/main.go similarity index 100% rename from Framework/chi/v5.1.0/project/main.go rename to runtimes/frameworks/chi/v5.1.0/project/main.go diff --git a/Framework/django/4.2.16/Dockerfile b/runtimes/frameworks/django/4.2.16/Dockerfile similarity index 67% rename from Framework/django/4.2.16/Dockerfile rename to runtimes/frameworks/django/4.2.16/Dockerfile index 49fea5d2..8dd28aac 100644 --- a/Framework/django/4.2.16/Dockerfile +++ b/runtimes/frameworks/django/4.2.16/Dockerfile @@ -1,9 +1,9 @@ -FROM ghcr.io/labring-actions/devbox/python-3.12:3b6f7a9 +FROM ghcr.io/labring-actions/devbox/python-3.12:latest RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Framework/django/4.2.16/project /home/devbox/project - +COPY project /home/devbox/project + RUN chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh @@ -13,6 +13,6 @@ RUN python3 -m venv /home/devbox/project && \ cd /home/devbox/project && \ . bin/activate && \ pip3 install django==4.2.16 && \ - deactivate + deactivate -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/django/4.2.16/project/README.md b/runtimes/frameworks/django/4.2.16/project/README.md similarity index 100% rename from Framework/django/4.2.16/project/README.md rename to runtimes/frameworks/django/4.2.16/project/README.md diff --git a/Framework/django/4.2.16/project/entrypoint.sh b/runtimes/frameworks/django/4.2.16/project/entrypoint.sh similarity index 100% rename from Framework/django/4.2.16/project/entrypoint.sh rename to runtimes/frameworks/django/4.2.16/project/entrypoint.sh diff --git a/Framework/django/4.2.16/project/manage.py b/runtimes/frameworks/django/4.2.16/project/manage.py similarity index 100% rename from Framework/django/4.2.16/project/manage.py rename to runtimes/frameworks/django/4.2.16/project/manage.py diff --git a/Framework/docusaurus/3.5.2/project/static/.nojekyll b/runtimes/frameworks/django/4.2.16/project/project/__init__.py similarity index 100% rename from Framework/docusaurus/3.5.2/project/static/.nojekyll rename to runtimes/frameworks/django/4.2.16/project/project/__init__.py diff --git a/Framework/django/4.2.16/project/project/asgi.py b/runtimes/frameworks/django/4.2.16/project/project/asgi.py similarity index 100% rename from Framework/django/4.2.16/project/project/asgi.py rename to runtimes/frameworks/django/4.2.16/project/project/asgi.py diff --git a/Framework/django/4.2.16/project/project/settings.py b/runtimes/frameworks/django/4.2.16/project/project/settings.py similarity index 100% rename from Framework/django/4.2.16/project/project/settings.py rename to runtimes/frameworks/django/4.2.16/project/project/settings.py diff --git a/Framework/django/4.2.16/project/project/urls.py b/runtimes/frameworks/django/4.2.16/project/project/urls.py similarity index 100% rename from Framework/django/4.2.16/project/project/urls.py rename to runtimes/frameworks/django/4.2.16/project/project/urls.py diff --git a/Framework/django/4.2.16/project/project/wsgi.py b/runtimes/frameworks/django/4.2.16/project/project/wsgi.py similarity index 100% rename from Framework/django/4.2.16/project/project/wsgi.py rename to runtimes/frameworks/django/4.2.16/project/project/wsgi.py diff --git a/Framework/django/update_cn_dockerfile.sh b/runtimes/frameworks/django/update_cn_dockerfile.sh similarity index 100% rename from Framework/django/update_cn_dockerfile.sh rename to runtimes/frameworks/django/update_cn_dockerfile.sh diff --git a/Framework/docusaurus/3.5.2/Dockerfile b/runtimes/frameworks/docusaurus/3.5.2/Dockerfile similarity index 64% rename from Framework/docusaurus/3.5.2/Dockerfile rename to runtimes/frameworks/docusaurus/3.5.2/Dockerfile index 2cd86620..96986079 100644 --- a/Framework/docusaurus/3.5.2/Dockerfile +++ b/runtimes/frameworks/docusaurus/3.5.2/Dockerfile @@ -1,10 +1,10 @@ -FROM ghcr.io/labring-actions/devbox/node.js-20:3b6f7a9 +FROM ghcr.io/labring-actions/devbox/node.js-20:latest USER root RUN cd /home/devbox/project && \ rm -rf ./* - -COPY /Framework/docusaurus/3.5.2/project /home/devbox/project + +COPY project /home/devbox/project RUN chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh @@ -13,5 +13,5 @@ USER devbox RUN cd /home/devbox/project && \ npm install && \ npx docusaurus build - -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file + +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/docusaurus/3.5.2/project/.gitignore b/runtimes/frameworks/docusaurus/3.5.2/project/.gitignore similarity index 100% rename from Framework/docusaurus/3.5.2/project/.gitignore rename to runtimes/frameworks/docusaurus/3.5.2/project/.gitignore diff --git a/Framework/docusaurus/3.5.2/project/README.md b/runtimes/frameworks/docusaurus/3.5.2/project/README.md similarity index 100% rename from Framework/docusaurus/3.5.2/project/README.md rename to runtimes/frameworks/docusaurus/3.5.2/project/README.md diff --git a/Framework/docusaurus/3.5.2/project/babel.config.js b/runtimes/frameworks/docusaurus/3.5.2/project/babel.config.js similarity index 100% rename from Framework/docusaurus/3.5.2/project/babel.config.js rename to runtimes/frameworks/docusaurus/3.5.2/project/babel.config.js diff --git a/Framework/docusaurus/3.5.2/project/blog/2019-05-28-first-blog-post.md b/runtimes/frameworks/docusaurus/3.5.2/project/blog/2019-05-28-first-blog-post.md similarity index 100% rename from Framework/docusaurus/3.5.2/project/blog/2019-05-28-first-blog-post.md rename to runtimes/frameworks/docusaurus/3.5.2/project/blog/2019-05-28-first-blog-post.md diff --git a/Framework/docusaurus/3.5.2/project/blog/2019-05-29-long-blog-post.md b/runtimes/frameworks/docusaurus/3.5.2/project/blog/2019-05-29-long-blog-post.md similarity index 100% rename from Framework/docusaurus/3.5.2/project/blog/2019-05-29-long-blog-post.md rename to runtimes/frameworks/docusaurus/3.5.2/project/blog/2019-05-29-long-blog-post.md diff --git a/Framework/docusaurus/3.5.2/project/blog/2021-08-01-mdx-blog-post.mdx b/runtimes/frameworks/docusaurus/3.5.2/project/blog/2021-08-01-mdx-blog-post.mdx similarity index 100% rename from Framework/docusaurus/3.5.2/project/blog/2021-08-01-mdx-blog-post.mdx rename to runtimes/frameworks/docusaurus/3.5.2/project/blog/2021-08-01-mdx-blog-post.mdx diff --git a/Framework/docusaurus/3.5.2/project/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg b/runtimes/frameworks/docusaurus/3.5.2/project/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg similarity index 100% rename from Framework/docusaurus/3.5.2/project/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg rename to runtimes/frameworks/docusaurus/3.5.2/project/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg diff --git a/Framework/docusaurus/3.5.2/project/blog/2021-08-26-welcome/index.md b/runtimes/frameworks/docusaurus/3.5.2/project/blog/2021-08-26-welcome/index.md similarity index 100% rename from Framework/docusaurus/3.5.2/project/blog/2021-08-26-welcome/index.md rename to runtimes/frameworks/docusaurus/3.5.2/project/blog/2021-08-26-welcome/index.md diff --git a/Framework/docusaurus/3.5.2/project/blog/authors.yml b/runtimes/frameworks/docusaurus/3.5.2/project/blog/authors.yml similarity index 100% rename from Framework/docusaurus/3.5.2/project/blog/authors.yml rename to runtimes/frameworks/docusaurus/3.5.2/project/blog/authors.yml diff --git a/Framework/docusaurus/3.5.2/project/blog/tags.yml b/runtimes/frameworks/docusaurus/3.5.2/project/blog/tags.yml similarity index 100% rename from Framework/docusaurus/3.5.2/project/blog/tags.yml rename to runtimes/frameworks/docusaurus/3.5.2/project/blog/tags.yml diff --git a/Framework/docusaurus/3.5.2/project/docs/intro.md b/runtimes/frameworks/docusaurus/3.5.2/project/docs/intro.md similarity index 100% rename from Framework/docusaurus/3.5.2/project/docs/intro.md rename to runtimes/frameworks/docusaurus/3.5.2/project/docs/intro.md diff --git a/Framework/docusaurus/3.5.2/project/docs/tutorial-basics/_category_.json b/runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-basics/_category_.json similarity index 100% rename from Framework/docusaurus/3.5.2/project/docs/tutorial-basics/_category_.json rename to runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-basics/_category_.json diff --git a/Framework/docusaurus/3.5.2/project/docs/tutorial-basics/congratulations.md b/runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-basics/congratulations.md similarity index 100% rename from Framework/docusaurus/3.5.2/project/docs/tutorial-basics/congratulations.md rename to runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-basics/congratulations.md diff --git a/Framework/docusaurus/3.5.2/project/docs/tutorial-basics/create-a-blog-post.md b/runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-basics/create-a-blog-post.md similarity index 100% rename from Framework/docusaurus/3.5.2/project/docs/tutorial-basics/create-a-blog-post.md rename to runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-basics/create-a-blog-post.md diff --git a/Framework/docusaurus/3.5.2/project/docs/tutorial-basics/create-a-document.md b/runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-basics/create-a-document.md similarity index 100% rename from Framework/docusaurus/3.5.2/project/docs/tutorial-basics/create-a-document.md rename to runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-basics/create-a-document.md diff --git a/Framework/docusaurus/3.5.2/project/docs/tutorial-basics/create-a-page.md b/runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-basics/create-a-page.md similarity index 100% rename from Framework/docusaurus/3.5.2/project/docs/tutorial-basics/create-a-page.md rename to runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-basics/create-a-page.md diff --git a/Framework/docusaurus/3.5.2/project/docs/tutorial-basics/deploy-your-site.md b/runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-basics/deploy-your-site.md similarity index 100% rename from Framework/docusaurus/3.5.2/project/docs/tutorial-basics/deploy-your-site.md rename to runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-basics/deploy-your-site.md diff --git a/Framework/docusaurus/3.5.2/project/docs/tutorial-basics/markdown-features.mdx b/runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-basics/markdown-features.mdx similarity index 100% rename from Framework/docusaurus/3.5.2/project/docs/tutorial-basics/markdown-features.mdx rename to runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-basics/markdown-features.mdx diff --git a/Framework/docusaurus/3.5.2/project/docs/tutorial-extras/_category_.json b/runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-extras/_category_.json similarity index 100% rename from Framework/docusaurus/3.5.2/project/docs/tutorial-extras/_category_.json rename to runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-extras/_category_.json diff --git a/Framework/docusaurus/3.5.2/project/docs/tutorial-extras/img/docsVersionDropdown.png b/runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-extras/img/docsVersionDropdown.png similarity index 100% rename from Framework/docusaurus/3.5.2/project/docs/tutorial-extras/img/docsVersionDropdown.png rename to runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-extras/img/docsVersionDropdown.png diff --git a/Framework/docusaurus/3.5.2/project/docs/tutorial-extras/img/localeDropdown.png b/runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-extras/img/localeDropdown.png similarity index 100% rename from Framework/docusaurus/3.5.2/project/docs/tutorial-extras/img/localeDropdown.png rename to runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-extras/img/localeDropdown.png diff --git a/Framework/docusaurus/3.5.2/project/docs/tutorial-extras/manage-docs-versions.md b/runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-extras/manage-docs-versions.md similarity index 100% rename from Framework/docusaurus/3.5.2/project/docs/tutorial-extras/manage-docs-versions.md rename to runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-extras/manage-docs-versions.md diff --git a/Framework/docusaurus/3.5.2/project/docs/tutorial-extras/translate-your-site.md b/runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-extras/translate-your-site.md similarity index 100% rename from Framework/docusaurus/3.5.2/project/docs/tutorial-extras/translate-your-site.md rename to runtimes/frameworks/docusaurus/3.5.2/project/docs/tutorial-extras/translate-your-site.md diff --git a/Framework/docusaurus/3.5.2/project/docusaurus.config.ts b/runtimes/frameworks/docusaurus/3.5.2/project/docusaurus.config.ts similarity index 100% rename from Framework/docusaurus/3.5.2/project/docusaurus.config.ts rename to runtimes/frameworks/docusaurus/3.5.2/project/docusaurus.config.ts diff --git a/Framework/docusaurus/3.5.2/project/entrypoint.sh b/runtimes/frameworks/docusaurus/3.5.2/project/entrypoint.sh similarity index 100% rename from Framework/docusaurus/3.5.2/project/entrypoint.sh rename to runtimes/frameworks/docusaurus/3.5.2/project/entrypoint.sh diff --git a/Framework/docusaurus/3.5.2/project/package-lock.json b/runtimes/frameworks/docusaurus/3.5.2/project/package-lock.json similarity index 100% rename from Framework/docusaurus/3.5.2/project/package-lock.json rename to runtimes/frameworks/docusaurus/3.5.2/project/package-lock.json diff --git a/Framework/docusaurus/3.5.2/project/package.json b/runtimes/frameworks/docusaurus/3.5.2/project/package.json similarity index 100% rename from Framework/docusaurus/3.5.2/project/package.json rename to runtimes/frameworks/docusaurus/3.5.2/project/package.json diff --git a/Framework/docusaurus/3.5.2/project/sidebars.ts b/runtimes/frameworks/docusaurus/3.5.2/project/sidebars.ts similarity index 100% rename from Framework/docusaurus/3.5.2/project/sidebars.ts rename to runtimes/frameworks/docusaurus/3.5.2/project/sidebars.ts diff --git a/Framework/docusaurus/3.5.2/project/src/components/HomepageFeatures/index.tsx b/runtimes/frameworks/docusaurus/3.5.2/project/src/components/HomepageFeatures/index.tsx similarity index 100% rename from Framework/docusaurus/3.5.2/project/src/components/HomepageFeatures/index.tsx rename to runtimes/frameworks/docusaurus/3.5.2/project/src/components/HomepageFeatures/index.tsx diff --git a/Framework/docusaurus/3.5.2/project/src/components/HomepageFeatures/styles.module.css b/runtimes/frameworks/docusaurus/3.5.2/project/src/components/HomepageFeatures/styles.module.css similarity index 100% rename from Framework/docusaurus/3.5.2/project/src/components/HomepageFeatures/styles.module.css rename to runtimes/frameworks/docusaurus/3.5.2/project/src/components/HomepageFeatures/styles.module.css diff --git a/Framework/docusaurus/3.5.2/project/src/css/custom.css b/runtimes/frameworks/docusaurus/3.5.2/project/src/css/custom.css similarity index 100% rename from Framework/docusaurus/3.5.2/project/src/css/custom.css rename to runtimes/frameworks/docusaurus/3.5.2/project/src/css/custom.css diff --git a/Framework/docusaurus/3.5.2/project/src/pages/index.module.css b/runtimes/frameworks/docusaurus/3.5.2/project/src/pages/index.module.css similarity index 100% rename from Framework/docusaurus/3.5.2/project/src/pages/index.module.css rename to runtimes/frameworks/docusaurus/3.5.2/project/src/pages/index.module.css diff --git a/Framework/docusaurus/3.5.2/project/src/pages/index.tsx b/runtimes/frameworks/docusaurus/3.5.2/project/src/pages/index.tsx similarity index 100% rename from Framework/docusaurus/3.5.2/project/src/pages/index.tsx rename to runtimes/frameworks/docusaurus/3.5.2/project/src/pages/index.tsx diff --git a/Framework/docusaurus/3.5.2/project/src/pages/markdown-page.md b/runtimes/frameworks/docusaurus/3.5.2/project/src/pages/markdown-page.md similarity index 100% rename from Framework/docusaurus/3.5.2/project/src/pages/markdown-page.md rename to runtimes/frameworks/docusaurus/3.5.2/project/src/pages/markdown-page.md diff --git a/Framework/quarkus/3.16.1/project/src/main/resources/application.properties b/runtimes/frameworks/docusaurus/3.5.2/project/static/.nojekyll similarity index 100% rename from Framework/quarkus/3.16.1/project/src/main/resources/application.properties rename to runtimes/frameworks/docusaurus/3.5.2/project/static/.nojekyll diff --git a/Framework/docusaurus/3.5.2/project/static/img/docusaurus-social-card.jpg b/runtimes/frameworks/docusaurus/3.5.2/project/static/img/docusaurus-social-card.jpg similarity index 100% rename from Framework/docusaurus/3.5.2/project/static/img/docusaurus-social-card.jpg rename to runtimes/frameworks/docusaurus/3.5.2/project/static/img/docusaurus-social-card.jpg diff --git a/Framework/docusaurus/3.5.2/project/static/img/docusaurus.png b/runtimes/frameworks/docusaurus/3.5.2/project/static/img/docusaurus.png similarity index 100% rename from Framework/docusaurus/3.5.2/project/static/img/docusaurus.png rename to runtimes/frameworks/docusaurus/3.5.2/project/static/img/docusaurus.png diff --git a/Framework/docusaurus/3.5.2/project/static/img/favicon.ico b/runtimes/frameworks/docusaurus/3.5.2/project/static/img/favicon.ico similarity index 100% rename from Framework/docusaurus/3.5.2/project/static/img/favicon.ico rename to runtimes/frameworks/docusaurus/3.5.2/project/static/img/favicon.ico diff --git a/Framework/docusaurus/3.5.2/project/static/img/logo.svg b/runtimes/frameworks/docusaurus/3.5.2/project/static/img/logo.svg similarity index 100% rename from Framework/docusaurus/3.5.2/project/static/img/logo.svg rename to runtimes/frameworks/docusaurus/3.5.2/project/static/img/logo.svg diff --git a/Framework/docusaurus/3.5.2/project/static/img/undraw_docusaurus_mountain.svg b/runtimes/frameworks/docusaurus/3.5.2/project/static/img/undraw_docusaurus_mountain.svg similarity index 100% rename from Framework/docusaurus/3.5.2/project/static/img/undraw_docusaurus_mountain.svg rename to runtimes/frameworks/docusaurus/3.5.2/project/static/img/undraw_docusaurus_mountain.svg diff --git a/Framework/docusaurus/3.5.2/project/static/img/undraw_docusaurus_react.svg b/runtimes/frameworks/docusaurus/3.5.2/project/static/img/undraw_docusaurus_react.svg similarity index 100% rename from Framework/docusaurus/3.5.2/project/static/img/undraw_docusaurus_react.svg rename to runtimes/frameworks/docusaurus/3.5.2/project/static/img/undraw_docusaurus_react.svg diff --git a/Framework/docusaurus/3.5.2/project/static/img/undraw_docusaurus_tree.svg b/runtimes/frameworks/docusaurus/3.5.2/project/static/img/undraw_docusaurus_tree.svg similarity index 100% rename from Framework/docusaurus/3.5.2/project/static/img/undraw_docusaurus_tree.svg rename to runtimes/frameworks/docusaurus/3.5.2/project/static/img/undraw_docusaurus_tree.svg diff --git a/Framework/docusaurus/3.5.2/project/tsconfig.json b/runtimes/frameworks/docusaurus/3.5.2/project/tsconfig.json similarity index 100% rename from Framework/docusaurus/3.5.2/project/tsconfig.json rename to runtimes/frameworks/docusaurus/3.5.2/project/tsconfig.json diff --git a/Framework/docusaurus/update_cn_dockerfile.sh b/runtimes/frameworks/docusaurus/update_cn_dockerfile.sh similarity index 100% rename from Framework/docusaurus/update_cn_dockerfile.sh rename to runtimes/frameworks/docusaurus/update_cn_dockerfile.sh diff --git a/Framework/echo/update_cn_dockerfile.sh b/runtimes/frameworks/echo/update_cn_dockerfile.sh similarity index 100% rename from Framework/echo/update_cn_dockerfile.sh rename to runtimes/frameworks/echo/update_cn_dockerfile.sh diff --git a/Framework/gin/v1.10.0/Dockerfile b/runtimes/frameworks/echo/v4.12.0/Dockerfile similarity index 66% rename from Framework/gin/v1.10.0/Dockerfile rename to runtimes/frameworks/echo/v4.12.0/Dockerfile index c0816d16..74001087 100644 --- a/Framework/gin/v1.10.0/Dockerfile +++ b/runtimes/frameworks/echo/v4.12.0/Dockerfile @@ -1,10 +1,10 @@ -FROM ghcr.io/labring-actions/devbox/go-1.22.5:3b6f7a9 +FROM ghcr.io/labring-actions/devbox/go-1.22.5:latest RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Framework/gin/v1.10.0/project /home/devbox/project - +COPY project /home/devbox/project + RUN chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh @@ -15,4 +15,4 @@ go mod tidy && \ go build -o main main.go USER root -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/echo/v4.12.0/project/README.md b/runtimes/frameworks/echo/v4.12.0/project/README.md similarity index 100% rename from Framework/echo/v4.12.0/project/README.md rename to runtimes/frameworks/echo/v4.12.0/project/README.md diff --git a/Framework/echo/v4.12.0/project/entrypoint.sh b/runtimes/frameworks/echo/v4.12.0/project/entrypoint.sh similarity index 100% rename from Framework/echo/v4.12.0/project/entrypoint.sh rename to runtimes/frameworks/echo/v4.12.0/project/entrypoint.sh diff --git a/Framework/echo/v4.12.0/project/go.mod b/runtimes/frameworks/echo/v4.12.0/project/go.mod similarity index 100% rename from Framework/echo/v4.12.0/project/go.mod rename to runtimes/frameworks/echo/v4.12.0/project/go.mod diff --git a/Framework/echo/v4.12.0/project/go.sum b/runtimes/frameworks/echo/v4.12.0/project/go.sum similarity index 100% rename from Framework/echo/v4.12.0/project/go.sum rename to runtimes/frameworks/echo/v4.12.0/project/go.sum diff --git a/Framework/echo/v4.12.0/project/main.go b/runtimes/frameworks/echo/v4.12.0/project/main.go similarity index 100% rename from Framework/echo/v4.12.0/project/main.go rename to runtimes/frameworks/echo/v4.12.0/project/main.go diff --git a/Framework/astro/4.10.0/Dockerfile b/runtimes/frameworks/express.js/4.21.0/Dockerfile similarity index 60% rename from Framework/astro/4.10.0/Dockerfile rename to runtimes/frameworks/express.js/4.21.0/Dockerfile index 814b5b52..4506627e 100644 --- a/Framework/astro/4.10.0/Dockerfile +++ b/runtimes/frameworks/express.js/4.21.0/Dockerfile @@ -1,16 +1,16 @@ -FROM ghcr.io/labring-actions/devbox/node.js-20:3b6f7a9 +FROM ghcr.io/labring-actions/devbox/node.js-20:latest USER root RUN cd /home/devbox/project && \ rm -rf ./* - -COPY /Framework/astro/4.10.0/project /home/devbox/project + +COPY project /home/devbox/project RUN chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh USER devbox RUN cd /home/devbox/project && \ -npm install +npm install -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/express.js/4.21.0/project/README.md b/runtimes/frameworks/express.js/4.21.0/project/README.md similarity index 100% rename from Framework/express.js/4.21.0/project/README.md rename to runtimes/frameworks/express.js/4.21.0/project/README.md diff --git a/Framework/express.js/4.21.0/project/app.js b/runtimes/frameworks/express.js/4.21.0/project/app.js similarity index 100% rename from Framework/express.js/4.21.0/project/app.js rename to runtimes/frameworks/express.js/4.21.0/project/app.js diff --git a/Framework/express.js/4.21.0/project/entrypoint.sh b/runtimes/frameworks/express.js/4.21.0/project/entrypoint.sh similarity index 100% rename from Framework/express.js/4.21.0/project/entrypoint.sh rename to runtimes/frameworks/express.js/4.21.0/project/entrypoint.sh diff --git a/Framework/express.js/4.21.0/project/package-lock.json b/runtimes/frameworks/express.js/4.21.0/project/package-lock.json similarity index 100% rename from Framework/express.js/4.21.0/project/package-lock.json rename to runtimes/frameworks/express.js/4.21.0/project/package-lock.json diff --git a/Framework/express.js/4.21.0/project/package.json b/runtimes/frameworks/express.js/4.21.0/project/package.json similarity index 100% rename from Framework/express.js/4.21.0/project/package.json rename to runtimes/frameworks/express.js/4.21.0/project/package.json diff --git a/Framework/express.js/update_cn_dockerfile.sh b/runtimes/frameworks/express.js/update_cn_dockerfile.sh similarity index 100% rename from Framework/express.js/update_cn_dockerfile.sh rename to runtimes/frameworks/express.js/update_cn_dockerfile.sh diff --git a/Framework/flask/3.0.3/Dockerfile b/runtimes/frameworks/flask/3.0.3/Dockerfile similarity index 68% rename from Framework/flask/3.0.3/Dockerfile rename to runtimes/frameworks/flask/3.0.3/Dockerfile index 8f8c7a38..554326d9 100644 --- a/Framework/flask/3.0.3/Dockerfile +++ b/runtimes/frameworks/flask/3.0.3/Dockerfile @@ -1,8 +1,8 @@ -FROM ghcr.io/labring-actions/devbox/python-3.12:3b6f7a9 +FROM ghcr.io/labring-actions/devbox/python-3.12:latest RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Framework/flask/3.0.3/project /home/devbox/project +COPY project /home/devbox/project RUN chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ @@ -13,7 +13,7 @@ RUN python3 -m venv /home/devbox/project && \ cd /home/devbox/project && \ . bin/activate && \ pip3 install flask && \ - deactivate + deactivate USER root -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/flask/3.0.3/project/README.md b/runtimes/frameworks/flask/3.0.3/project/README.md similarity index 100% rename from Framework/flask/3.0.3/project/README.md rename to runtimes/frameworks/flask/3.0.3/project/README.md diff --git a/Framework/flask/3.0.3/project/entrypoint.sh b/runtimes/frameworks/flask/3.0.3/project/entrypoint.sh similarity index 100% rename from Framework/flask/3.0.3/project/entrypoint.sh rename to runtimes/frameworks/flask/3.0.3/project/entrypoint.sh diff --git a/Framework/flask/3.0.3/project/hello.py b/runtimes/frameworks/flask/3.0.3/project/hello.py similarity index 100% rename from Framework/flask/3.0.3/project/hello.py rename to runtimes/frameworks/flask/3.0.3/project/hello.py diff --git a/Framework/flask/update_cn_dockerfile.sh b/runtimes/frameworks/flask/update_cn_dockerfile.sh similarity index 100% rename from Framework/flask/update_cn_dockerfile.sh rename to runtimes/frameworks/flask/update_cn_dockerfile.sh diff --git a/Framework/gin/update_cn_dockerfile.sh b/runtimes/frameworks/gin/update_cn_dockerfile.sh similarity index 100% rename from Framework/gin/update_cn_dockerfile.sh rename to runtimes/frameworks/gin/update_cn_dockerfile.sh diff --git a/Framework/echo/v4.12.0/Dockerfile b/runtimes/frameworks/gin/v1.10.0/Dockerfile similarity index 66% rename from Framework/echo/v4.12.0/Dockerfile rename to runtimes/frameworks/gin/v1.10.0/Dockerfile index 6ea94f4e..74001087 100644 --- a/Framework/echo/v4.12.0/Dockerfile +++ b/runtimes/frameworks/gin/v1.10.0/Dockerfile @@ -1,18 +1,18 @@ -FROM ghcr.io/labring-actions/devbox/go-1.22.5:3b6f7a9 +FROM ghcr.io/labring-actions/devbox/go-1.22.5:latest RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Framework/echo/v4.12.0/project /home/devbox/project +COPY project /home/devbox/project RUN chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh - + USER devbox RUN cd /home/devbox/project && \ go mod tidy && \ go build -o main main.go USER root -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/gin/v1.10.0/project/README.md b/runtimes/frameworks/gin/v1.10.0/project/README.md similarity index 100% rename from Framework/gin/v1.10.0/project/README.md rename to runtimes/frameworks/gin/v1.10.0/project/README.md diff --git a/Framework/gin/v1.10.0/project/entrypoint.sh b/runtimes/frameworks/gin/v1.10.0/project/entrypoint.sh similarity index 100% rename from Framework/gin/v1.10.0/project/entrypoint.sh rename to runtimes/frameworks/gin/v1.10.0/project/entrypoint.sh diff --git a/Framework/gin/v1.10.0/project/go.mod b/runtimes/frameworks/gin/v1.10.0/project/go.mod similarity index 100% rename from Framework/gin/v1.10.0/project/go.mod rename to runtimes/frameworks/gin/v1.10.0/project/go.mod diff --git a/Framework/gin/v1.10.0/project/go.sum b/runtimes/frameworks/gin/v1.10.0/project/go.sum similarity index 100% rename from Framework/gin/v1.10.0/project/go.sum rename to runtimes/frameworks/gin/v1.10.0/project/go.sum diff --git a/Framework/gin/v1.10.0/project/main.go b/runtimes/frameworks/gin/v1.10.0/project/main.go similarity index 100% rename from Framework/gin/v1.10.0/project/main.go rename to runtimes/frameworks/gin/v1.10.0/project/main.go diff --git a/Framework/hexo/7.3.0/Dockerfile b/runtimes/frameworks/hexo/7.3.0/Dockerfile similarity index 64% rename from Framework/hexo/7.3.0/Dockerfile rename to runtimes/frameworks/hexo/7.3.0/Dockerfile index da44f464..31fe5904 100644 --- a/Framework/hexo/7.3.0/Dockerfile +++ b/runtimes/frameworks/hexo/7.3.0/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/labring-actions/devbox/node.js-20:3b6f7a9 +FROM ghcr.io/labring-actions/devbox/node.js-20:latest USER root RUN rm -r /home/devbox/project && \ @@ -11,12 +11,12 @@ RUN sudo npm install -g hexo-cli && \ hexo init /home/devbox/project && \ cd /home/devbox/project && \ npm install -COPY /Framework/hexo/7.3.0/entrypoint.sh /home/devbox/project/entrypoint.sh -COPY /Framework/hexo/7.3.0/README.md /home/devbox/project/README.md - +COPY entrypoint.sh /home/devbox/project/entrypoint.sh +COPY README.md /home/devbox/project/README.md + USER root RUN chown -R devbox:devbox /home/devbox/project/entrypoint.sh && \ chmod -R 777 /home/devbox/project/entrypoint.sh USER devbox - -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file + +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/hexo/7.3.0/README.md b/runtimes/frameworks/hexo/7.3.0/README.md similarity index 100% rename from Framework/hexo/7.3.0/README.md rename to runtimes/frameworks/hexo/7.3.0/README.md diff --git a/Framework/hexo/7.3.0/entrypoint.sh b/runtimes/frameworks/hexo/7.3.0/entrypoint.sh similarity index 100% rename from Framework/hexo/7.3.0/entrypoint.sh rename to runtimes/frameworks/hexo/7.3.0/entrypoint.sh diff --git a/Framework/hexo/update_cn_dockerfile.sh b/runtimes/frameworks/hexo/update_cn_dockerfile.sh similarity index 100% rename from Framework/hexo/update_cn_dockerfile.sh rename to runtimes/frameworks/hexo/update_cn_dockerfile.sh diff --git a/Framework/hugo/update_cn_dockerfile.sh b/runtimes/frameworks/hugo/update_cn_dockerfile.sh similarity index 100% rename from Framework/hugo/update_cn_dockerfile.sh rename to runtimes/frameworks/hugo/update_cn_dockerfile.sh diff --git a/Framework/hugo/v0.135.0/Dockerfile b/runtimes/frameworks/hugo/v0.135.0/Dockerfile similarity index 79% rename from Framework/hugo/v0.135.0/Dockerfile rename to runtimes/frameworks/hugo/v0.135.0/Dockerfile index 82122c1d..83b80768 100644 --- a/Framework/hugo/v0.135.0/Dockerfile +++ b/runtimes/frameworks/hugo/v0.135.0/Dockerfile @@ -1,6 +1,6 @@ -FROM ghcr.io/labring-actions/devbox/go-1.22.5:3b6f7a9 +FROM ghcr.io/labring-actions/devbox/go-1.22.5:latest -RUN rm -r /home/devbox/project +RUN rm -r /home/devbox/project USER devbox RUN curl -LO https://github.com/gohugoio/hugo/releases/download/v0.135.0/hugo_extended_0.135.0_linux-amd64.tar.gz && \ @@ -15,8 +15,8 @@ git init && \ git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke && \ echo "theme = 'ananke'" >> hugo.toml && \ hugo - -COPY /Framework/hugo/v0.135.0/project /home/devbox/project + +COPY project /home/devbox/project USER root @@ -24,4 +24,4 @@ RUN chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/hugo/v0.135.0/project/README.md b/runtimes/frameworks/hugo/v0.135.0/project/README.md similarity index 100% rename from Framework/hugo/v0.135.0/project/README.md rename to runtimes/frameworks/hugo/v0.135.0/project/README.md diff --git a/Framework/hugo/v0.135.0/project/entrypoint.sh b/runtimes/frameworks/hugo/v0.135.0/project/entrypoint.sh similarity index 100% rename from Framework/hugo/v0.135.0/project/entrypoint.sh rename to runtimes/frameworks/hugo/v0.135.0/project/entrypoint.sh diff --git a/Framework/iris/update_cn_dockerfile.sh b/runtimes/frameworks/iris/update_cn_dockerfile.sh similarity index 100% rename from Framework/iris/update_cn_dockerfile.sh rename to runtimes/frameworks/iris/update_cn_dockerfile.sh diff --git a/Framework/iris/v12.2.11/Dockerfile b/runtimes/frameworks/iris/v12.2.11/Dockerfile similarity index 65% rename from Framework/iris/v12.2.11/Dockerfile rename to runtimes/frameworks/iris/v12.2.11/Dockerfile index 0413a81e..74001087 100644 --- a/Framework/iris/v12.2.11/Dockerfile +++ b/runtimes/frameworks/iris/v12.2.11/Dockerfile @@ -1,18 +1,18 @@ -FROM ghcr.io/labring-actions/devbox/go-1.22.5:3b6f7a9 +FROM ghcr.io/labring-actions/devbox/go-1.22.5:latest RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Framework/iris/v12.2.11/project /home/devbox/project +COPY project /home/devbox/project RUN chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh - + USER devbox RUN cd /home/devbox/project && \ go mod tidy && \ go build -o main main.go USER root -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/iris/v12.2.11/project/README.md b/runtimes/frameworks/iris/v12.2.11/project/README.md similarity index 100% rename from Framework/iris/v12.2.11/project/README.md rename to runtimes/frameworks/iris/v12.2.11/project/README.md diff --git a/Framework/iris/v12.2.11/project/entrypoint.sh b/runtimes/frameworks/iris/v12.2.11/project/entrypoint.sh similarity index 100% rename from Framework/iris/v12.2.11/project/entrypoint.sh rename to runtimes/frameworks/iris/v12.2.11/project/entrypoint.sh diff --git a/Framework/iris/v12.2.11/project/go.mod b/runtimes/frameworks/iris/v12.2.11/project/go.mod similarity index 100% rename from Framework/iris/v12.2.11/project/go.mod rename to runtimes/frameworks/iris/v12.2.11/project/go.mod diff --git a/Framework/iris/v12.2.11/project/go.sum b/runtimes/frameworks/iris/v12.2.11/project/go.sum similarity index 100% rename from Framework/iris/v12.2.11/project/go.sum rename to runtimes/frameworks/iris/v12.2.11/project/go.sum diff --git a/Framework/iris/v12.2.11/project/main.go b/runtimes/frameworks/iris/v12.2.11/project/main.go similarity index 100% rename from Framework/iris/v12.2.11/project/main.go rename to runtimes/frameworks/iris/v12.2.11/project/main.go diff --git a/Framework/laravel/5.8.5/project/entrypoint.sh b/runtimes/frameworks/laravel/5.8.5/project/entrypoint.sh similarity index 100% rename from Framework/laravel/5.8.5/project/entrypoint.sh rename to runtimes/frameworks/laravel/5.8.5/project/entrypoint.sh diff --git a/Framework/laravel/update_cn_dockerfile.sh b/runtimes/frameworks/laravel/update_cn_dockerfile.sh similarity index 100% rename from Framework/laravel/update_cn_dockerfile.sh rename to runtimes/frameworks/laravel/update_cn_dockerfile.sh diff --git a/Framework/next.js/14.2.5/Dockerfile b/runtimes/frameworks/next.js/14.2.5/Dockerfile similarity index 68% rename from Framework/next.js/14.2.5/Dockerfile rename to runtimes/frameworks/next.js/14.2.5/Dockerfile index 773128b8..3e58b84a 100644 --- a/Framework/next.js/14.2.5/Dockerfile +++ b/runtimes/frameworks/next.js/14.2.5/Dockerfile @@ -1,9 +1,9 @@ -FROM ghcr.io/labring-actions/devbox/node.js-20:3b6f7a9 +FROM ghcr.io/labring-actions/devbox/node.js-20:latest USER root RUN cd /home/devbox/project && \ rm -rf ./* - -COPY /Framework/next.js/14.2.5/project /home/devbox/project + +COPY project /home/devbox/project RUN chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh @@ -14,4 +14,4 @@ npm config set fetch-retry-maxtimeout 10000000 && \ pnpm install && \ pnpm run build -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/next.js/14.2.5/project/README.md b/runtimes/frameworks/next.js/14.2.5/project/README.md similarity index 100% rename from Framework/next.js/14.2.5/project/README.md rename to runtimes/frameworks/next.js/14.2.5/project/README.md diff --git a/Framework/next.js/14.2.5/project/entrypoint.sh b/runtimes/frameworks/next.js/14.2.5/project/entrypoint.sh similarity index 100% rename from Framework/next.js/14.2.5/project/entrypoint.sh rename to runtimes/frameworks/next.js/14.2.5/project/entrypoint.sh diff --git a/Framework/next.js/14.2.5/project/next-env.d.ts b/runtimes/frameworks/next.js/14.2.5/project/next-env.d.ts similarity index 100% rename from Framework/next.js/14.2.5/project/next-env.d.ts rename to runtimes/frameworks/next.js/14.2.5/project/next-env.d.ts diff --git a/Framework/next.js/14.2.5/project/next.config.mjs b/runtimes/frameworks/next.js/14.2.5/project/next.config.mjs similarity index 100% rename from Framework/next.js/14.2.5/project/next.config.mjs rename to runtimes/frameworks/next.js/14.2.5/project/next.config.mjs diff --git a/Framework/next.js/14.2.5/project/package-lock.json b/runtimes/frameworks/next.js/14.2.5/project/package-lock.json similarity index 100% rename from Framework/next.js/14.2.5/project/package-lock.json rename to runtimes/frameworks/next.js/14.2.5/project/package-lock.json diff --git a/Framework/next.js/14.2.5/project/package.json b/runtimes/frameworks/next.js/14.2.5/project/package.json similarity index 100% rename from Framework/next.js/14.2.5/project/package.json rename to runtimes/frameworks/next.js/14.2.5/project/package.json diff --git a/Framework/next.js/14.2.5/project/pnpm-lock.yaml b/runtimes/frameworks/next.js/14.2.5/project/pnpm-lock.yaml similarity index 100% rename from Framework/next.js/14.2.5/project/pnpm-lock.yaml rename to runtimes/frameworks/next.js/14.2.5/project/pnpm-lock.yaml diff --git a/Framework/next.js/14.2.5/project/public/next.svg b/runtimes/frameworks/next.js/14.2.5/project/public/next.svg similarity index 100% rename from Framework/next.js/14.2.5/project/public/next.svg rename to runtimes/frameworks/next.js/14.2.5/project/public/next.svg diff --git a/Framework/next.js/14.2.5/project/public/vercel.svg b/runtimes/frameworks/next.js/14.2.5/project/public/vercel.svg similarity index 100% rename from Framework/next.js/14.2.5/project/public/vercel.svg rename to runtimes/frameworks/next.js/14.2.5/project/public/vercel.svg diff --git a/Framework/next.js/14.2.5/project/src/app/favicon.ico b/runtimes/frameworks/next.js/14.2.5/project/src/app/favicon.ico similarity index 100% rename from Framework/next.js/14.2.5/project/src/app/favicon.ico rename to runtimes/frameworks/next.js/14.2.5/project/src/app/favicon.ico diff --git a/Framework/next.js/14.2.5/project/src/app/globals.css b/runtimes/frameworks/next.js/14.2.5/project/src/app/globals.css similarity index 100% rename from Framework/next.js/14.2.5/project/src/app/globals.css rename to runtimes/frameworks/next.js/14.2.5/project/src/app/globals.css diff --git a/Framework/next.js/14.2.5/project/src/app/layout.tsx b/runtimes/frameworks/next.js/14.2.5/project/src/app/layout.tsx similarity index 100% rename from Framework/next.js/14.2.5/project/src/app/layout.tsx rename to runtimes/frameworks/next.js/14.2.5/project/src/app/layout.tsx diff --git a/Framework/next.js/14.2.5/project/src/app/page.module.css b/runtimes/frameworks/next.js/14.2.5/project/src/app/page.module.css similarity index 100% rename from Framework/next.js/14.2.5/project/src/app/page.module.css rename to runtimes/frameworks/next.js/14.2.5/project/src/app/page.module.css diff --git a/Framework/next.js/14.2.5/project/src/app/page.tsx b/runtimes/frameworks/next.js/14.2.5/project/src/app/page.tsx similarity index 100% rename from Framework/next.js/14.2.5/project/src/app/page.tsx rename to runtimes/frameworks/next.js/14.2.5/project/src/app/page.tsx diff --git a/Framework/next.js/14.2.5/project/tsconfig.json b/runtimes/frameworks/next.js/14.2.5/project/tsconfig.json similarity index 100% rename from Framework/next.js/14.2.5/project/tsconfig.json rename to runtimes/frameworks/next.js/14.2.5/project/tsconfig.json diff --git a/Framework/next.js/14.2.5/project/yarn.lock b/runtimes/frameworks/next.js/14.2.5/project/yarn.lock similarity index 100% rename from Framework/next.js/14.2.5/project/yarn.lock rename to runtimes/frameworks/next.js/14.2.5/project/yarn.lock diff --git a/Framework/next.js/update_cn_dockerfile.sh b/runtimes/frameworks/next.js/update_cn_dockerfile.sh similarity index 91% rename from Framework/next.js/update_cn_dockerfile.sh rename to runtimes/frameworks/next.js/update_cn_dockerfile.sh index b5e711ed..648600d0 100755 --- a/Framework/next.js/update_cn_dockerfile.sh +++ b/runtimes/frameworks/next.js/update_cn_dockerfile.sh @@ -1,4 +1,5 @@ -USER root#!/bin/bash +#!/bin/bash +USER root DOCKERFILE=$1 echo "DOCKERFILE: $DOCKERFILE" @@ -15,4 +16,4 @@ sed -i '$i\ USER devbox' "$TMP_DOCKERFILE" sed -i '$i\ -RUN npm config set registry https://registry.npmmirror.com' "$TMP_DOCKERFILE" \ No newline at end of file +RUN npm config set registry https://registry.npmmirror.com' "$TMP_DOCKERFILE" diff --git a/runtimes/frameworks/nginx/1.22.1/Dockerfile b/runtimes/frameworks/nginx/1.22.1/Dockerfile new file mode 100644 index 00000000..71a96dab --- /dev/null +++ b/runtimes/frameworks/nginx/1.22.1/Dockerfile @@ -0,0 +1,14 @@ +FROM ghcr.io/labring-actions/devbox/node.js-20:latest +# Test comment for GitHub Actions trigger +USER root +RUN cd /home/devbox/project + +RUN apt-get update && apt-get install -y nginx + +COPY project /home/devbox/project +COPY nginx.conf /etc/nginx/nginx.conf +RUN chown -R devbox:devbox /home/devbox/project && \ +chmod -R u+rw /home/devbox/project && \ +chmod -R +x /home/devbox/project/entrypoint.sh + +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/nginx/1.22.1/nginx.conf b/runtimes/frameworks/nginx/1.22.1/nginx.conf similarity index 100% rename from Framework/nginx/1.22.1/nginx.conf rename to runtimes/frameworks/nginx/1.22.1/nginx.conf diff --git a/Framework/nginx/1.22.1/project/entrypoint.sh b/runtimes/frameworks/nginx/1.22.1/project/entrypoint.sh similarity index 100% rename from Framework/nginx/1.22.1/project/entrypoint.sh rename to runtimes/frameworks/nginx/1.22.1/project/entrypoint.sh diff --git a/Framework/nginx/1.22.1/project/index.html b/runtimes/frameworks/nginx/1.22.1/project/index.html similarity index 100% rename from Framework/nginx/1.22.1/project/index.html rename to runtimes/frameworks/nginx/1.22.1/project/index.html diff --git a/Framework/nginx/1.22.1/project/nginx.conf b/runtimes/frameworks/nginx/1.22.1/project/nginx.conf similarity index 100% rename from Framework/nginx/1.22.1/project/nginx.conf rename to runtimes/frameworks/nginx/1.22.1/project/nginx.conf diff --git a/Framework/nginx/update_cn_dockerfile.sh b/runtimes/frameworks/nginx/update_cn_dockerfile.sh similarity index 100% rename from Framework/nginx/update_cn_dockerfile.sh rename to runtimes/frameworks/nginx/update_cn_dockerfile.sh diff --git a/Framework/nuxt3/update_cn_dockerfile.sh b/runtimes/frameworks/nuxt3/update_cn_dockerfile.sh similarity index 100% rename from Framework/nuxt3/update_cn_dockerfile.sh rename to runtimes/frameworks/nuxt3/update_cn_dockerfile.sh diff --git a/Framework/nuxt3/v3.13/Dockerfile b/runtimes/frameworks/nuxt3/v3.13/Dockerfile similarity index 65% rename from Framework/nuxt3/v3.13/Dockerfile rename to runtimes/frameworks/nuxt3/v3.13/Dockerfile index 18e60fe2..5001a1a7 100644 --- a/Framework/nuxt3/v3.13/Dockerfile +++ b/runtimes/frameworks/nuxt3/v3.13/Dockerfile @@ -1,9 +1,9 @@ -FROM ghcr.io/labring-actions/devbox/node.js-20:3b6f7a9 +FROM ghcr.io/labring-actions/devbox/node.js-20:latest USER root RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Framework/nuxt3/v3.13/project /home/devbox/project +COPY project /home/devbox/project RUN chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh @@ -12,5 +12,5 @@ USER devbox RUN cd /home/devbox/project && \ npm install && \ pnpm run build - -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file + +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/nuxt3/v3.13/project/.gitignore b/runtimes/frameworks/nuxt3/v3.13/project/.gitignore similarity index 100% rename from Framework/nuxt3/v3.13/project/.gitignore rename to runtimes/frameworks/nuxt3/v3.13/project/.gitignore diff --git a/Framework/nuxt3/v3.13/project/README.md b/runtimes/frameworks/nuxt3/v3.13/project/README.md similarity index 100% rename from Framework/nuxt3/v3.13/project/README.md rename to runtimes/frameworks/nuxt3/v3.13/project/README.md diff --git a/Framework/nuxt3/v3.13/project/app.vue b/runtimes/frameworks/nuxt3/v3.13/project/app.vue similarity index 100% rename from Framework/nuxt3/v3.13/project/app.vue rename to runtimes/frameworks/nuxt3/v3.13/project/app.vue diff --git a/Framework/nuxt3/v3.13/project/entrypoint.sh b/runtimes/frameworks/nuxt3/v3.13/project/entrypoint.sh similarity index 100% rename from Framework/nuxt3/v3.13/project/entrypoint.sh rename to runtimes/frameworks/nuxt3/v3.13/project/entrypoint.sh diff --git a/Framework/nuxt3/v3.13/project/nuxt.config.ts b/runtimes/frameworks/nuxt3/v3.13/project/nuxt.config.ts similarity index 100% rename from Framework/nuxt3/v3.13/project/nuxt.config.ts rename to runtimes/frameworks/nuxt3/v3.13/project/nuxt.config.ts diff --git a/Framework/nuxt3/v3.13/project/package-lock.json b/runtimes/frameworks/nuxt3/v3.13/project/package-lock.json similarity index 100% rename from Framework/nuxt3/v3.13/project/package-lock.json rename to runtimes/frameworks/nuxt3/v3.13/project/package-lock.json diff --git a/Framework/nuxt3/v3.13/project/package.json b/runtimes/frameworks/nuxt3/v3.13/project/package.json similarity index 100% rename from Framework/nuxt3/v3.13/project/package.json rename to runtimes/frameworks/nuxt3/v3.13/project/package.json diff --git a/Framework/nuxt3/v3.13/project/public/favicon.ico b/runtimes/frameworks/nuxt3/v3.13/project/public/favicon.ico similarity index 100% rename from Framework/nuxt3/v3.13/project/public/favicon.ico rename to runtimes/frameworks/nuxt3/v3.13/project/public/favicon.ico diff --git a/Framework/nuxt3/v3.13/project/public/robots.txt b/runtimes/frameworks/nuxt3/v3.13/project/public/robots.txt similarity index 100% rename from Framework/nuxt3/v3.13/project/public/robots.txt rename to runtimes/frameworks/nuxt3/v3.13/project/public/robots.txt diff --git a/Framework/nuxt3/v3.13/project/server/tsconfig.json b/runtimes/frameworks/nuxt3/v3.13/project/server/tsconfig.json similarity index 100% rename from Framework/nuxt3/v3.13/project/server/tsconfig.json rename to runtimes/frameworks/nuxt3/v3.13/project/server/tsconfig.json diff --git a/Framework/nuxt3/v3.13/project/tsconfig.json b/runtimes/frameworks/nuxt3/v3.13/project/tsconfig.json similarity index 100% rename from Framework/nuxt3/v3.13/project/tsconfig.json rename to runtimes/frameworks/nuxt3/v3.13/project/tsconfig.json diff --git a/Framework/quarkus/3.16.1/Dockerfile b/runtimes/frameworks/quarkus/3.16.1/Dockerfile similarity index 66% rename from Framework/quarkus/3.16.1/Dockerfile rename to runtimes/frameworks/quarkus/3.16.1/Dockerfile index 179850b6..869ecabe 100644 --- a/Framework/quarkus/3.16.1/Dockerfile +++ b/runtimes/frameworks/quarkus/3.16.1/Dockerfile @@ -1,19 +1,19 @@ -FROM ghcr.io/labring-actions/devbox/java-openjdk17:3b6f7a9 +FROM ghcr.io/labring-actions/devbox/java-openjdk17:latest RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Framework/quarkus/3.16.1/project /home/devbox/project +COPY project /home/devbox/project RUN chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ -chmod -R +x /home/devbox/project/entrypoint.sh +chmod -R +x /home/devbox/project/entrypoint.sh USER devbox RUN cd /home/devbox/project && \ curl -Ls https://sh.jbang.dev | bash -s - trust add https://repo1.maven.org/maven2/io/quarkus/quarkus-cli/ --global && \ curl -Ls https://sh.jbang.dev | bash -s - app install --fresh --force quarkus@quarkusio --global && \ - ./mvnw package + ./mvnw package USER root -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/quarkus/3.16.1/project/.dockerignore b/runtimes/frameworks/quarkus/3.16.1/project/.dockerignore similarity index 100% rename from Framework/quarkus/3.16.1/project/.dockerignore rename to runtimes/frameworks/quarkus/3.16.1/project/.dockerignore diff --git a/Framework/quarkus/3.16.1/project/.gitignore b/runtimes/frameworks/quarkus/3.16.1/project/.gitignore similarity index 100% rename from Framework/quarkus/3.16.1/project/.gitignore rename to runtimes/frameworks/quarkus/3.16.1/project/.gitignore diff --git a/Framework/quarkus/3.16.1/project/.mvn/wrapper/.gitignore b/runtimes/frameworks/quarkus/3.16.1/project/.mvn/wrapper/.gitignore similarity index 100% rename from Framework/quarkus/3.16.1/project/.mvn/wrapper/.gitignore rename to runtimes/frameworks/quarkus/3.16.1/project/.mvn/wrapper/.gitignore diff --git a/Framework/quarkus/3.16.1/project/.mvn/wrapper/MavenWrapperDownloader.java b/runtimes/frameworks/quarkus/3.16.1/project/.mvn/wrapper/MavenWrapperDownloader.java similarity index 100% rename from Framework/quarkus/3.16.1/project/.mvn/wrapper/MavenWrapperDownloader.java rename to runtimes/frameworks/quarkus/3.16.1/project/.mvn/wrapper/MavenWrapperDownloader.java diff --git a/Framework/quarkus/3.16.1/project/.mvn/wrapper/maven-wrapper.properties b/runtimes/frameworks/quarkus/3.16.1/project/.mvn/wrapper/maven-wrapper.properties similarity index 100% rename from Framework/quarkus/3.16.1/project/.mvn/wrapper/maven-wrapper.properties rename to runtimes/frameworks/quarkus/3.16.1/project/.mvn/wrapper/maven-wrapper.properties diff --git a/Framework/quarkus/3.16.1/project/README.md b/runtimes/frameworks/quarkus/3.16.1/project/README.md similarity index 100% rename from Framework/quarkus/3.16.1/project/README.md rename to runtimes/frameworks/quarkus/3.16.1/project/README.md diff --git a/Framework/quarkus/3.16.1/project/entrypoint.sh b/runtimes/frameworks/quarkus/3.16.1/project/entrypoint.sh similarity index 100% rename from Framework/quarkus/3.16.1/project/entrypoint.sh rename to runtimes/frameworks/quarkus/3.16.1/project/entrypoint.sh diff --git a/Framework/quarkus/3.16.1/project/mvnw b/runtimes/frameworks/quarkus/3.16.1/project/mvnw similarity index 100% rename from Framework/quarkus/3.16.1/project/mvnw rename to runtimes/frameworks/quarkus/3.16.1/project/mvnw diff --git a/Framework/quarkus/3.16.1/project/mvnw.cmd b/runtimes/frameworks/quarkus/3.16.1/project/mvnw.cmd similarity index 100% rename from Framework/quarkus/3.16.1/project/mvnw.cmd rename to runtimes/frameworks/quarkus/3.16.1/project/mvnw.cmd diff --git a/Framework/quarkus/3.16.1/project/pom.xml b/runtimes/frameworks/quarkus/3.16.1/project/pom.xml similarity index 100% rename from Framework/quarkus/3.16.1/project/pom.xml rename to runtimes/frameworks/quarkus/3.16.1/project/pom.xml diff --git a/Framework/quarkus/3.16.1/project/src/main/java/org/acme/GreetingResource.java b/runtimes/frameworks/quarkus/3.16.1/project/src/main/java/org/acme/GreetingResource.java similarity index 100% rename from Framework/quarkus/3.16.1/project/src/main/java/org/acme/GreetingResource.java rename to runtimes/frameworks/quarkus/3.16.1/project/src/main/java/org/acme/GreetingResource.java diff --git a/Language/net/project/obj/Debug/net8.0/hello_wo.51BA16A8.Up2Date b/runtimes/frameworks/quarkus/3.16.1/project/src/main/resources/application.properties similarity index 100% rename from Language/net/project/obj/Debug/net8.0/hello_wo.51BA16A8.Up2Date rename to runtimes/frameworks/quarkus/3.16.1/project/src/main/resources/application.properties diff --git a/Framework/quarkus/3.16.1/project/src/test/java/org/acme/GreetingResourceIT.java b/runtimes/frameworks/quarkus/3.16.1/project/src/test/java/org/acme/GreetingResourceIT.java similarity index 100% rename from Framework/quarkus/3.16.1/project/src/test/java/org/acme/GreetingResourceIT.java rename to runtimes/frameworks/quarkus/3.16.1/project/src/test/java/org/acme/GreetingResourceIT.java diff --git a/Framework/quarkus/3.16.1/project/src/test/java/org/acme/GreetingResourceTest.java b/runtimes/frameworks/quarkus/3.16.1/project/src/test/java/org/acme/GreetingResourceTest.java similarity index 100% rename from Framework/quarkus/3.16.1/project/src/test/java/org/acme/GreetingResourceTest.java rename to runtimes/frameworks/quarkus/3.16.1/project/src/test/java/org/acme/GreetingResourceTest.java diff --git a/Framework/quarkus/update_cn_dockerfile.sh b/runtimes/frameworks/quarkus/update_cn_dockerfile.sh similarity index 100% rename from Framework/quarkus/update_cn_dockerfile.sh rename to runtimes/frameworks/quarkus/update_cn_dockerfile.sh diff --git a/Framework/react/18.2.0/Dockerfile b/runtimes/frameworks/react/18.2.0/Dockerfile similarity index 80% rename from Framework/react/18.2.0/Dockerfile rename to runtimes/frameworks/react/18.2.0/Dockerfile index 55e643c9..e48a0e2c 100644 --- a/Framework/react/18.2.0/Dockerfile +++ b/runtimes/frameworks/react/18.2.0/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/labring-actions/devbox/node.js-22:3b6f7a9 +FROM ghcr.io/labring-actions/devbox/node.js-22:latest USER root RUN cd /home/devbox/project && \ @@ -6,14 +6,14 @@ rm -rf ./* && \ mkdir -p /usr/lib/node_modules && \ chown -R devbox:devbox /usr/lib/node_modules -COPY /Framework/react/18.2.0/project /home/devbox/project +COPY project /home/devbox/project RUN chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh USER devbox ENV PATH=/home/devbox/.npm-global/bin:$PATH - + RUN mkdir -p /home/devbox/.npm-global && \ npm config set prefix '/home/devbox/.npm-global' && \ echo 'export PATH=/home/devbox/.npm-global/bin:$PATH' >> /home/devbox/.bashrc && \ @@ -21,5 +21,5 @@ cd /home/devbox/project && \ npm install -g serve && \ npm install && \ npm run build - -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file + +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/react/18.2.0/project/README.md b/runtimes/frameworks/react/18.2.0/project/README.md similarity index 100% rename from Framework/react/18.2.0/project/README.md rename to runtimes/frameworks/react/18.2.0/project/README.md diff --git a/Framework/react/18.2.0/project/entrypoint.sh b/runtimes/frameworks/react/18.2.0/project/entrypoint.sh similarity index 100% rename from Framework/react/18.2.0/project/entrypoint.sh rename to runtimes/frameworks/react/18.2.0/project/entrypoint.sh diff --git a/Framework/react/18.2.0/project/package.json b/runtimes/frameworks/react/18.2.0/project/package.json similarity index 100% rename from Framework/react/18.2.0/project/package.json rename to runtimes/frameworks/react/18.2.0/project/package.json diff --git a/Framework/react/18.2.0/project/public/favicon.ico b/runtimes/frameworks/react/18.2.0/project/public/favicon.ico similarity index 100% rename from Framework/react/18.2.0/project/public/favicon.ico rename to runtimes/frameworks/react/18.2.0/project/public/favicon.ico diff --git a/Framework/react/18.2.0/project/public/index.html b/runtimes/frameworks/react/18.2.0/project/public/index.html similarity index 100% rename from Framework/react/18.2.0/project/public/index.html rename to runtimes/frameworks/react/18.2.0/project/public/index.html diff --git a/Framework/react/18.2.0/project/public/logo192.png b/runtimes/frameworks/react/18.2.0/project/public/logo192.png similarity index 100% rename from Framework/react/18.2.0/project/public/logo192.png rename to runtimes/frameworks/react/18.2.0/project/public/logo192.png diff --git a/Framework/react/18.2.0/project/public/logo512.png b/runtimes/frameworks/react/18.2.0/project/public/logo512.png similarity index 100% rename from Framework/react/18.2.0/project/public/logo512.png rename to runtimes/frameworks/react/18.2.0/project/public/logo512.png diff --git a/Framework/react/18.2.0/project/public/manifest.json b/runtimes/frameworks/react/18.2.0/project/public/manifest.json similarity index 100% rename from Framework/react/18.2.0/project/public/manifest.json rename to runtimes/frameworks/react/18.2.0/project/public/manifest.json diff --git a/Framework/react/18.2.0/project/public/robots.txt b/runtimes/frameworks/react/18.2.0/project/public/robots.txt similarity index 100% rename from Framework/react/18.2.0/project/public/robots.txt rename to runtimes/frameworks/react/18.2.0/project/public/robots.txt diff --git a/Framework/react/18.2.0/project/src/App.css b/runtimes/frameworks/react/18.2.0/project/src/App.css similarity index 100% rename from Framework/react/18.2.0/project/src/App.css rename to runtimes/frameworks/react/18.2.0/project/src/App.css diff --git a/Framework/react/18.2.0/project/src/App.test.tsx b/runtimes/frameworks/react/18.2.0/project/src/App.test.tsx similarity index 100% rename from Framework/react/18.2.0/project/src/App.test.tsx rename to runtimes/frameworks/react/18.2.0/project/src/App.test.tsx diff --git a/Framework/react/18.2.0/project/src/App.tsx b/runtimes/frameworks/react/18.2.0/project/src/App.tsx similarity index 100% rename from Framework/react/18.2.0/project/src/App.tsx rename to runtimes/frameworks/react/18.2.0/project/src/App.tsx diff --git a/Framework/react/18.2.0/project/src/index.css b/runtimes/frameworks/react/18.2.0/project/src/index.css similarity index 100% rename from Framework/react/18.2.0/project/src/index.css rename to runtimes/frameworks/react/18.2.0/project/src/index.css diff --git a/Framework/react/18.2.0/project/src/index.tsx b/runtimes/frameworks/react/18.2.0/project/src/index.tsx similarity index 100% rename from Framework/react/18.2.0/project/src/index.tsx rename to runtimes/frameworks/react/18.2.0/project/src/index.tsx diff --git a/Framework/react/18.2.0/project/src/logo.svg b/runtimes/frameworks/react/18.2.0/project/src/logo.svg similarity index 100% rename from Framework/react/18.2.0/project/src/logo.svg rename to runtimes/frameworks/react/18.2.0/project/src/logo.svg diff --git a/Framework/react/18.2.0/project/src/react-app-env.d.ts b/runtimes/frameworks/react/18.2.0/project/src/react-app-env.d.ts similarity index 100% rename from Framework/react/18.2.0/project/src/react-app-env.d.ts rename to runtimes/frameworks/react/18.2.0/project/src/react-app-env.d.ts diff --git a/Framework/react/18.2.0/project/src/reportWebVitals.ts b/runtimes/frameworks/react/18.2.0/project/src/reportWebVitals.ts similarity index 100% rename from Framework/react/18.2.0/project/src/reportWebVitals.ts rename to runtimes/frameworks/react/18.2.0/project/src/reportWebVitals.ts diff --git a/Framework/react/18.2.0/project/src/setupTests.ts b/runtimes/frameworks/react/18.2.0/project/src/setupTests.ts similarity index 100% rename from Framework/react/18.2.0/project/src/setupTests.ts rename to runtimes/frameworks/react/18.2.0/project/src/setupTests.ts diff --git a/Framework/react/18.2.0/project/tsconfig.json b/runtimes/frameworks/react/18.2.0/project/tsconfig.json similarity index 100% rename from Framework/react/18.2.0/project/tsconfig.json rename to runtimes/frameworks/react/18.2.0/project/tsconfig.json diff --git a/Framework/react/update_cn_dockerfile.sh b/runtimes/frameworks/react/update_cn_dockerfile.sh similarity index 100% rename from Framework/react/update_cn_dockerfile.sh rename to runtimes/frameworks/react/update_cn_dockerfile.sh diff --git a/Framework/svelte/6.4.0/Dockerfile b/runtimes/frameworks/rocket/0.5.1/Dockerfile similarity index 59% rename from Framework/svelte/6.4.0/Dockerfile rename to runtimes/frameworks/rocket/0.5.1/Dockerfile index 04ee0dca..1b29d95b 100644 --- a/Framework/svelte/6.4.0/Dockerfile +++ b/runtimes/frameworks/rocket/0.5.1/Dockerfile @@ -1,16 +1,18 @@ -FROM ghcr.io/labring-actions/devbox/node.js-20:3b6f7a9 -USER root +FROM ghcr.io/labring-actions/devbox/rust-1.81.0:latest + RUN cd /home/devbox/project && \ rm -rf ./* - -COPY /Framework/svelte/6.4.0/project /home/devbox/project + +USER root +COPY project /home/devbox/project + RUN chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh USER devbox RUN cd /home/devbox/project && \ -npm install - +cargo build --release -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file +USER root +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/rocket/0.5.1/project/Cargo.lock b/runtimes/frameworks/rocket/0.5.1/project/Cargo.lock similarity index 100% rename from Framework/rocket/0.5.1/project/Cargo.lock rename to runtimes/frameworks/rocket/0.5.1/project/Cargo.lock diff --git a/Framework/rocket/0.5.1/project/Cargo.toml b/runtimes/frameworks/rocket/0.5.1/project/Cargo.toml similarity index 100% rename from Framework/rocket/0.5.1/project/Cargo.toml rename to runtimes/frameworks/rocket/0.5.1/project/Cargo.toml diff --git a/Framework/rocket/0.5.1/project/README.md b/runtimes/frameworks/rocket/0.5.1/project/README.md similarity index 100% rename from Framework/rocket/0.5.1/project/README.md rename to runtimes/frameworks/rocket/0.5.1/project/README.md diff --git a/Framework/rocket/0.5.1/project/entrypoint.sh b/runtimes/frameworks/rocket/0.5.1/project/entrypoint.sh similarity index 100% rename from Framework/rocket/0.5.1/project/entrypoint.sh rename to runtimes/frameworks/rocket/0.5.1/project/entrypoint.sh diff --git a/Framework/rocket/0.5.1/project/src/main.rs b/runtimes/frameworks/rocket/0.5.1/project/src/main.rs similarity index 100% rename from Framework/rocket/0.5.1/project/src/main.rs rename to runtimes/frameworks/rocket/0.5.1/project/src/main.rs diff --git a/Framework/rocket/update_cn_dockerfile.sh b/runtimes/frameworks/rocket/update_cn_dockerfile.sh similarity index 100% rename from Framework/rocket/update_cn_dockerfile.sh rename to runtimes/frameworks/rocket/update_cn_dockerfile.sh diff --git a/Framework/sealaf/1.0.0/Dockerfile b/runtimes/frameworks/sealaf/1.0.0/Dockerfile similarity index 64% rename from Framework/sealaf/1.0.0/Dockerfile rename to runtimes/frameworks/sealaf/1.0.0/Dockerfile index f10a773b..b2409ec1 100644 --- a/Framework/sealaf/1.0.0/Dockerfile +++ b/runtimes/frameworks/sealaf/1.0.0/Dockerfile @@ -1,9 +1,9 @@ -FROM ghcr.io/labring-actions/devbox/node.js-20:3b6f7a9 +FROM ghcr.io/labring-actions/devbox/node.js-20:latest USER root RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Framework/sealaf/1.0.0/project /home/devbox/project +COPY project /home/devbox/project RUN chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ @@ -13,6 +13,6 @@ USER devbox RUN cd /home/devbox/project && \ pnpm install && \ pnpm build - -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file + +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/sealaf/1.0.0/project/README.md b/runtimes/frameworks/sealaf/1.0.0/project/README.md similarity index 100% rename from Framework/sealaf/1.0.0/project/README.md rename to runtimes/frameworks/sealaf/1.0.0/project/README.md diff --git a/Framework/sealaf/1.0.0/project/entrypoint.sh b/runtimes/frameworks/sealaf/1.0.0/project/entrypoint.sh similarity index 100% rename from Framework/sealaf/1.0.0/project/entrypoint.sh rename to runtimes/frameworks/sealaf/1.0.0/project/entrypoint.sh diff --git a/Framework/sealaf/1.0.0/project/functions/hello.ts b/runtimes/frameworks/sealaf/1.0.0/project/functions/hello.ts similarity index 100% rename from Framework/sealaf/1.0.0/project/functions/hello.ts rename to runtimes/frameworks/sealaf/1.0.0/project/functions/hello.ts diff --git a/Framework/sealaf/1.0.0/project/index.ts b/runtimes/frameworks/sealaf/1.0.0/project/index.ts similarity index 100% rename from Framework/sealaf/1.0.0/project/index.ts rename to runtimes/frameworks/sealaf/1.0.0/project/index.ts diff --git a/Framework/sealaf/1.0.0/project/nodemon.json b/runtimes/frameworks/sealaf/1.0.0/project/nodemon.json similarity index 100% rename from Framework/sealaf/1.0.0/project/nodemon.json rename to runtimes/frameworks/sealaf/1.0.0/project/nodemon.json diff --git a/Framework/sealaf/1.0.0/project/package.json b/runtimes/frameworks/sealaf/1.0.0/project/package.json similarity index 100% rename from Framework/sealaf/1.0.0/project/package.json rename to runtimes/frameworks/sealaf/1.0.0/project/package.json diff --git a/Framework/sealaf/1.0.0/project/pnpm-lock.yaml b/runtimes/frameworks/sealaf/1.0.0/project/pnpm-lock.yaml similarity index 100% rename from Framework/sealaf/1.0.0/project/pnpm-lock.yaml rename to runtimes/frameworks/sealaf/1.0.0/project/pnpm-lock.yaml diff --git a/Framework/sealaf/1.0.0/project/tsconfig.json b/runtimes/frameworks/sealaf/1.0.0/project/tsconfig.json similarity index 100% rename from Framework/sealaf/1.0.0/project/tsconfig.json rename to runtimes/frameworks/sealaf/1.0.0/project/tsconfig.json diff --git a/Framework/sealaf/update_cn_dockerfile.sh b/runtimes/frameworks/sealaf/update_cn_dockerfile.sh similarity index 100% rename from Framework/sealaf/update_cn_dockerfile.sh rename to runtimes/frameworks/sealaf/update_cn_dockerfile.sh diff --git a/runtimes/frameworks/spring-boot/3.3.2/Dockerfile b/runtimes/frameworks/spring-boot/3.3.2/Dockerfile new file mode 100644 index 00000000..0e69cce5 --- /dev/null +++ b/runtimes/frameworks/spring-boot/3.3.2/Dockerfile @@ -0,0 +1,17 @@ +FROM ghcr.io/labring-actions/devbox/java-openjdk17:latest + +RUN cd /home/devbox/project && \ +rm -rf ./* + +COPY project /home/devbox/project + +RUN chown -R devbox:devbox /home/devbox/project && \ +chmod -R u+rw /home/devbox/project && \ +chmod -R +x /home/devbox/project/entrypoint.sh + +USER devbox +RUN cd /home/devbox/project && \ + mvn install + +USER root +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/spring-boot/3.3.2/project/README.md b/runtimes/frameworks/spring-boot/3.3.2/project/README.md similarity index 100% rename from Framework/spring-boot/3.3.2/project/README.md rename to runtimes/frameworks/spring-boot/3.3.2/project/README.md diff --git a/Framework/spring-boot/3.3.2/project/entrypoint.sh b/runtimes/frameworks/spring-boot/3.3.2/project/entrypoint.sh similarity index 100% rename from Framework/spring-boot/3.3.2/project/entrypoint.sh rename to runtimes/frameworks/spring-boot/3.3.2/project/entrypoint.sh diff --git a/Framework/spring-boot/3.3.2/project/mvnw b/runtimes/frameworks/spring-boot/3.3.2/project/mvnw similarity index 100% rename from Framework/spring-boot/3.3.2/project/mvnw rename to runtimes/frameworks/spring-boot/3.3.2/project/mvnw diff --git a/Framework/spring-boot/3.3.2/project/mvnw.cmd b/runtimes/frameworks/spring-boot/3.3.2/project/mvnw.cmd similarity index 100% rename from Framework/spring-boot/3.3.2/project/mvnw.cmd rename to runtimes/frameworks/spring-boot/3.3.2/project/mvnw.cmd diff --git a/Framework/spring-boot/3.3.2/project/pom.xml b/runtimes/frameworks/spring-boot/3.3.2/project/pom.xml similarity index 100% rename from Framework/spring-boot/3.3.2/project/pom.xml rename to runtimes/frameworks/spring-boot/3.3.2/project/pom.xml diff --git a/Framework/spring-boot/3.3.2/project/src/main/java/com/example/hello/HelloApplication.java b/runtimes/frameworks/spring-boot/3.3.2/project/src/main/java/com/example/hello/HelloApplication.java similarity index 100% rename from Framework/spring-boot/3.3.2/project/src/main/java/com/example/hello/HelloApplication.java rename to runtimes/frameworks/spring-boot/3.3.2/project/src/main/java/com/example/hello/HelloApplication.java diff --git a/Framework/spring-boot/3.3.2/project/src/main/resources/application.properties b/runtimes/frameworks/spring-boot/3.3.2/project/src/main/resources/application.properties similarity index 100% rename from Framework/spring-boot/3.3.2/project/src/main/resources/application.properties rename to runtimes/frameworks/spring-boot/3.3.2/project/src/main/resources/application.properties diff --git a/Framework/spring-boot/3.3.2/project/src/test/java/com/example/hello/HelloApplicationTests.java b/runtimes/frameworks/spring-boot/3.3.2/project/src/test/java/com/example/hello/HelloApplicationTests.java similarity index 100% rename from Framework/spring-boot/3.3.2/project/src/test/java/com/example/hello/HelloApplicationTests.java rename to runtimes/frameworks/spring-boot/3.3.2/project/src/test/java/com/example/hello/HelloApplicationTests.java diff --git a/Framework/spring-boot/update_cn_dockerfile.sh b/runtimes/frameworks/spring-boot/update_cn_dockerfile.sh similarity index 100% rename from Framework/spring-boot/update_cn_dockerfile.sh rename to runtimes/frameworks/spring-boot/update_cn_dockerfile.sh diff --git a/runtimes/frameworks/svelte/6.4.0/Dockerfile b/runtimes/frameworks/svelte/6.4.0/Dockerfile new file mode 100644 index 00000000..39efca9b --- /dev/null +++ b/runtimes/frameworks/svelte/6.4.0/Dockerfile @@ -0,0 +1,16 @@ +FROM ghcr.io/labring-actions/devbox/node.js-20:latest +USER root +RUN cd /home/devbox/project && \ +rm -rf ./* + +COPY project /home/devbox/project +RUN chown -R devbox:devbox /home/devbox/project && \ +chmod -R u+rw /home/devbox/project && \ +chmod -R +x /home/devbox/project/entrypoint.sh + +USER devbox +RUN cd /home/devbox/project && \ +npm install + + +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/svelte/6.4.0/project/.gitignore b/runtimes/frameworks/svelte/6.4.0/project/.gitignore similarity index 100% rename from Framework/svelte/6.4.0/project/.gitignore rename to runtimes/frameworks/svelte/6.4.0/project/.gitignore diff --git a/Framework/svelte/6.4.0/project/.npmrc b/runtimes/frameworks/svelte/6.4.0/project/.npmrc similarity index 100% rename from Framework/svelte/6.4.0/project/.npmrc rename to runtimes/frameworks/svelte/6.4.0/project/.npmrc diff --git a/Framework/svelte/6.4.0/project/README.md b/runtimes/frameworks/svelte/6.4.0/project/README.md similarity index 100% rename from Framework/svelte/6.4.0/project/README.md rename to runtimes/frameworks/svelte/6.4.0/project/README.md diff --git a/Framework/svelte/6.4.0/project/entrypoint.sh b/runtimes/frameworks/svelte/6.4.0/project/entrypoint.sh similarity index 100% rename from Framework/svelte/6.4.0/project/entrypoint.sh rename to runtimes/frameworks/svelte/6.4.0/project/entrypoint.sh diff --git a/Framework/svelte/6.4.0/project/package-lock.json b/runtimes/frameworks/svelte/6.4.0/project/package-lock.json similarity index 100% rename from Framework/svelte/6.4.0/project/package-lock.json rename to runtimes/frameworks/svelte/6.4.0/project/package-lock.json diff --git a/Framework/svelte/6.4.0/project/package.json b/runtimes/frameworks/svelte/6.4.0/project/package.json similarity index 100% rename from Framework/svelte/6.4.0/project/package.json rename to runtimes/frameworks/svelte/6.4.0/project/package.json diff --git a/Framework/svelte/6.4.0/project/src/app.css b/runtimes/frameworks/svelte/6.4.0/project/src/app.css similarity index 100% rename from Framework/svelte/6.4.0/project/src/app.css rename to runtimes/frameworks/svelte/6.4.0/project/src/app.css diff --git a/Framework/svelte/6.4.0/project/src/app.d.ts b/runtimes/frameworks/svelte/6.4.0/project/src/app.d.ts similarity index 100% rename from Framework/svelte/6.4.0/project/src/app.d.ts rename to runtimes/frameworks/svelte/6.4.0/project/src/app.d.ts diff --git a/Framework/svelte/6.4.0/project/src/app.html b/runtimes/frameworks/svelte/6.4.0/project/src/app.html similarity index 100% rename from Framework/svelte/6.4.0/project/src/app.html rename to runtimes/frameworks/svelte/6.4.0/project/src/app.html diff --git a/Framework/svelte/6.4.0/project/src/lib/images/github.svg b/runtimes/frameworks/svelte/6.4.0/project/src/lib/images/github.svg similarity index 100% rename from Framework/svelte/6.4.0/project/src/lib/images/github.svg rename to runtimes/frameworks/svelte/6.4.0/project/src/lib/images/github.svg diff --git a/Framework/svelte/6.4.0/project/src/lib/images/svelte-logo.svg b/runtimes/frameworks/svelte/6.4.0/project/src/lib/images/svelte-logo.svg similarity index 100% rename from Framework/svelte/6.4.0/project/src/lib/images/svelte-logo.svg rename to runtimes/frameworks/svelte/6.4.0/project/src/lib/images/svelte-logo.svg diff --git a/Framework/svelte/6.4.0/project/src/lib/images/svelte-welcome.png b/runtimes/frameworks/svelte/6.4.0/project/src/lib/images/svelte-welcome.png similarity index 100% rename from Framework/svelte/6.4.0/project/src/lib/images/svelte-welcome.png rename to runtimes/frameworks/svelte/6.4.0/project/src/lib/images/svelte-welcome.png diff --git a/Framework/svelte/6.4.0/project/src/lib/images/svelte-welcome.webp b/runtimes/frameworks/svelte/6.4.0/project/src/lib/images/svelte-welcome.webp similarity index 100% rename from Framework/svelte/6.4.0/project/src/lib/images/svelte-welcome.webp rename to runtimes/frameworks/svelte/6.4.0/project/src/lib/images/svelte-welcome.webp diff --git a/Framework/svelte/6.4.0/project/src/routes/+layout.svelte b/runtimes/frameworks/svelte/6.4.0/project/src/routes/+layout.svelte similarity index 100% rename from Framework/svelte/6.4.0/project/src/routes/+layout.svelte rename to runtimes/frameworks/svelte/6.4.0/project/src/routes/+layout.svelte diff --git a/Framework/svelte/6.4.0/project/src/routes/+page.svelte b/runtimes/frameworks/svelte/6.4.0/project/src/routes/+page.svelte similarity index 100% rename from Framework/svelte/6.4.0/project/src/routes/+page.svelte rename to runtimes/frameworks/svelte/6.4.0/project/src/routes/+page.svelte diff --git a/Framework/svelte/6.4.0/project/src/routes/+page.ts b/runtimes/frameworks/svelte/6.4.0/project/src/routes/+page.ts similarity index 100% rename from Framework/svelte/6.4.0/project/src/routes/+page.ts rename to runtimes/frameworks/svelte/6.4.0/project/src/routes/+page.ts diff --git a/Framework/svelte/6.4.0/project/src/routes/Counter.svelte b/runtimes/frameworks/svelte/6.4.0/project/src/routes/Counter.svelte similarity index 100% rename from Framework/svelte/6.4.0/project/src/routes/Counter.svelte rename to runtimes/frameworks/svelte/6.4.0/project/src/routes/Counter.svelte diff --git a/Framework/svelte/6.4.0/project/src/routes/Header.svelte b/runtimes/frameworks/svelte/6.4.0/project/src/routes/Header.svelte similarity index 100% rename from Framework/svelte/6.4.0/project/src/routes/Header.svelte rename to runtimes/frameworks/svelte/6.4.0/project/src/routes/Header.svelte diff --git a/Framework/svelte/6.4.0/project/src/routes/about/+page.svelte b/runtimes/frameworks/svelte/6.4.0/project/src/routes/about/+page.svelte similarity index 100% rename from Framework/svelte/6.4.0/project/src/routes/about/+page.svelte rename to runtimes/frameworks/svelte/6.4.0/project/src/routes/about/+page.svelte diff --git a/Framework/svelte/6.4.0/project/src/routes/about/+page.ts b/runtimes/frameworks/svelte/6.4.0/project/src/routes/about/+page.ts similarity index 100% rename from Framework/svelte/6.4.0/project/src/routes/about/+page.ts rename to runtimes/frameworks/svelte/6.4.0/project/src/routes/about/+page.ts diff --git a/Framework/svelte/6.4.0/project/src/routes/sverdle/+page.server.ts b/runtimes/frameworks/svelte/6.4.0/project/src/routes/sverdle/+page.server.ts similarity index 100% rename from Framework/svelte/6.4.0/project/src/routes/sverdle/+page.server.ts rename to runtimes/frameworks/svelte/6.4.0/project/src/routes/sverdle/+page.server.ts diff --git a/Framework/svelte/6.4.0/project/src/routes/sverdle/+page.svelte b/runtimes/frameworks/svelte/6.4.0/project/src/routes/sverdle/+page.svelte similarity index 100% rename from Framework/svelte/6.4.0/project/src/routes/sverdle/+page.svelte rename to runtimes/frameworks/svelte/6.4.0/project/src/routes/sverdle/+page.svelte diff --git a/Framework/svelte/6.4.0/project/src/routes/sverdle/game.ts b/runtimes/frameworks/svelte/6.4.0/project/src/routes/sverdle/game.ts similarity index 100% rename from Framework/svelte/6.4.0/project/src/routes/sverdle/game.ts rename to runtimes/frameworks/svelte/6.4.0/project/src/routes/sverdle/game.ts diff --git a/Framework/svelte/6.4.0/project/src/routes/sverdle/how-to-play/+page.svelte b/runtimes/frameworks/svelte/6.4.0/project/src/routes/sverdle/how-to-play/+page.svelte similarity index 100% rename from Framework/svelte/6.4.0/project/src/routes/sverdle/how-to-play/+page.svelte rename to runtimes/frameworks/svelte/6.4.0/project/src/routes/sverdle/how-to-play/+page.svelte diff --git a/Framework/svelte/6.4.0/project/src/routes/sverdle/how-to-play/+page.ts b/runtimes/frameworks/svelte/6.4.0/project/src/routes/sverdle/how-to-play/+page.ts similarity index 100% rename from Framework/svelte/6.4.0/project/src/routes/sverdle/how-to-play/+page.ts rename to runtimes/frameworks/svelte/6.4.0/project/src/routes/sverdle/how-to-play/+page.ts diff --git a/Framework/svelte/6.4.0/project/src/routes/sverdle/reduced-motion.ts b/runtimes/frameworks/svelte/6.4.0/project/src/routes/sverdle/reduced-motion.ts similarity index 100% rename from Framework/svelte/6.4.0/project/src/routes/sverdle/reduced-motion.ts rename to runtimes/frameworks/svelte/6.4.0/project/src/routes/sverdle/reduced-motion.ts diff --git a/Framework/svelte/6.4.0/project/src/routes/sverdle/words.server.ts b/runtimes/frameworks/svelte/6.4.0/project/src/routes/sverdle/words.server.ts similarity index 100% rename from Framework/svelte/6.4.0/project/src/routes/sverdle/words.server.ts rename to runtimes/frameworks/svelte/6.4.0/project/src/routes/sverdle/words.server.ts diff --git a/Framework/svelte/6.4.0/project/static/favicon.png b/runtimes/frameworks/svelte/6.4.0/project/static/favicon.png similarity index 100% rename from Framework/svelte/6.4.0/project/static/favicon.png rename to runtimes/frameworks/svelte/6.4.0/project/static/favicon.png diff --git a/Framework/svelte/6.4.0/project/static/robots.txt b/runtimes/frameworks/svelte/6.4.0/project/static/robots.txt similarity index 100% rename from Framework/svelte/6.4.0/project/static/robots.txt rename to runtimes/frameworks/svelte/6.4.0/project/static/robots.txt diff --git a/Framework/svelte/6.4.0/project/svelte.config.js b/runtimes/frameworks/svelte/6.4.0/project/svelte.config.js similarity index 100% rename from Framework/svelte/6.4.0/project/svelte.config.js rename to runtimes/frameworks/svelte/6.4.0/project/svelte.config.js diff --git a/Framework/svelte/6.4.0/project/tsconfig.json b/runtimes/frameworks/svelte/6.4.0/project/tsconfig.json similarity index 100% rename from Framework/svelte/6.4.0/project/tsconfig.json rename to runtimes/frameworks/svelte/6.4.0/project/tsconfig.json diff --git a/Framework/svelte/6.4.0/project/vite.config.ts b/runtimes/frameworks/svelte/6.4.0/project/vite.config.ts similarity index 100% rename from Framework/svelte/6.4.0/project/vite.config.ts rename to runtimes/frameworks/svelte/6.4.0/project/vite.config.ts diff --git a/Framework/svelte/update_cn_dockerfile.sh b/runtimes/frameworks/svelte/update_cn_dockerfile.sh similarity index 100% rename from Framework/svelte/update_cn_dockerfile.sh rename to runtimes/frameworks/svelte/update_cn_dockerfile.sh diff --git a/Framework/umi/4.3.27/Dockerfile b/runtimes/frameworks/umi/4.3.27/Dockerfile similarity index 64% rename from Framework/umi/4.3.27/Dockerfile rename to runtimes/frameworks/umi/4.3.27/Dockerfile index e122c059..18f34c46 100644 --- a/Framework/umi/4.3.27/Dockerfile +++ b/runtimes/frameworks/umi/4.3.27/Dockerfile @@ -1,9 +1,9 @@ -FROM ghcr.io/labring-actions/devbox/node.js-20:3b6f7a9 +FROM ghcr.io/labring-actions/devbox/node.js-20:latest USER root RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Framework/umi/4.3.27/project /home/devbox/project +COPY project /home/devbox/project RUN chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh @@ -13,4 +13,4 @@ RUN cd /home/devbox/project && \ pnpm install -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/umi/4.3.27/project/.npmrc b/runtimes/frameworks/umi/4.3.27/project/.npmrc similarity index 100% rename from Framework/umi/4.3.27/project/.npmrc rename to runtimes/frameworks/umi/4.3.27/project/.npmrc diff --git a/Framework/umi/4.3.27/project/.umirc.ts b/runtimes/frameworks/umi/4.3.27/project/.umirc.ts similarity index 100% rename from Framework/umi/4.3.27/project/.umirc.ts rename to runtimes/frameworks/umi/4.3.27/project/.umirc.ts diff --git a/Framework/umi/4.3.27/project/README.md b/runtimes/frameworks/umi/4.3.27/project/README.md similarity index 100% rename from Framework/umi/4.3.27/project/README.md rename to runtimes/frameworks/umi/4.3.27/project/README.md diff --git a/Framework/umi/4.3.27/project/entrypoint.sh b/runtimes/frameworks/umi/4.3.27/project/entrypoint.sh similarity index 100% rename from Framework/umi/4.3.27/project/entrypoint.sh rename to runtimes/frameworks/umi/4.3.27/project/entrypoint.sh diff --git a/Framework/umi/4.3.27/project/package.json b/runtimes/frameworks/umi/4.3.27/project/package.json similarity index 100% rename from Framework/umi/4.3.27/project/package.json rename to runtimes/frameworks/umi/4.3.27/project/package.json diff --git a/Framework/umi/4.3.27/project/pnpm-lock.yaml b/runtimes/frameworks/umi/4.3.27/project/pnpm-lock.yaml similarity index 100% rename from Framework/umi/4.3.27/project/pnpm-lock.yaml rename to runtimes/frameworks/umi/4.3.27/project/pnpm-lock.yaml diff --git a/Framework/umi/4.3.27/project/src/.umi-production/core/EmptyRoute.tsx b/runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/EmptyRoute.tsx similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi-production/core/EmptyRoute.tsx rename to runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/EmptyRoute.tsx diff --git a/Framework/umi/4.3.27/project/src/.umi-production/core/defineApp.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/defineApp.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi-production/core/defineApp.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/defineApp.ts diff --git a/Framework/umi/4.3.27/project/src/.umi-production/core/helmet.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/helmet.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi-production/core/helmet.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/helmet.ts diff --git a/Framework/umi/4.3.27/project/src/.umi-production/core/helmetContext.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/helmetContext.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi-production/core/helmetContext.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/helmetContext.ts diff --git a/Framework/umi/4.3.27/project/src/.umi-production/core/history.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/history.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi-production/core/history.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/history.ts diff --git a/Framework/umi/4.3.27/project/src/.umi-production/core/historyIntelli.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/historyIntelli.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi-production/core/historyIntelli.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/historyIntelli.ts diff --git a/Framework/umi/4.3.27/project/src/.umi-production/core/plugin.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/plugin.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi-production/core/plugin.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/plugin.ts diff --git a/Framework/umi/4.3.27/project/src/.umi-production/core/pluginConfig.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/pluginConfig.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi-production/core/pluginConfig.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/pluginConfig.ts diff --git a/Framework/umi/4.3.27/project/src/.umi-production/core/pluginConfigJoi.d.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/pluginConfigJoi.d.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi-production/core/pluginConfigJoi.d.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/pluginConfigJoi.d.ts diff --git a/Framework/umi/4.3.27/project/src/.umi-production/core/polyfill.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/polyfill.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi-production/core/polyfill.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/polyfill.ts diff --git a/Framework/umi/4.3.27/project/src/.umi-production/core/route.tsx b/runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/route.tsx similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi-production/core/route.tsx rename to runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/route.tsx diff --git a/Framework/umi/4.3.27/project/src/.umi-production/core/terminal.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/terminal.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi-production/core/terminal.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi-production/core/terminal.ts diff --git a/Framework/umi/4.3.27/project/src/.umi-production/exports.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi-production/exports.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi-production/exports.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi-production/exports.ts diff --git a/Framework/umi/4.3.27/project/src/.umi-production/testBrowser.tsx b/runtimes/frameworks/umi/4.3.27/project/src/.umi-production/testBrowser.tsx similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi-production/testBrowser.tsx rename to runtimes/frameworks/umi/4.3.27/project/src/.umi-production/testBrowser.tsx diff --git a/Framework/umi/4.3.27/project/src/.umi-production/tsconfig.json b/runtimes/frameworks/umi/4.3.27/project/src/.umi-production/tsconfig.json similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi-production/tsconfig.json rename to runtimes/frameworks/umi/4.3.27/project/src/.umi-production/tsconfig.json diff --git a/Framework/umi/4.3.27/project/src/.umi-production/typings.d.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi-production/typings.d.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi-production/typings.d.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi-production/typings.d.ts diff --git a/Framework/umi/4.3.27/project/src/.umi-production/umi.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi-production/umi.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi-production/umi.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi-production/umi.ts diff --git a/Framework/umi/4.3.27/project/src/.umi/core/EmptyRoute.tsx b/runtimes/frameworks/umi/4.3.27/project/src/.umi/core/EmptyRoute.tsx similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi/core/EmptyRoute.tsx rename to runtimes/frameworks/umi/4.3.27/project/src/.umi/core/EmptyRoute.tsx diff --git a/Framework/umi/4.3.27/project/src/.umi/core/defineApp.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi/core/defineApp.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi/core/defineApp.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi/core/defineApp.ts diff --git a/Framework/umi/4.3.27/project/src/.umi/core/helmet.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi/core/helmet.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi/core/helmet.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi/core/helmet.ts diff --git a/Framework/umi/4.3.27/project/src/.umi/core/helmetContext.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi/core/helmetContext.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi/core/helmetContext.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi/core/helmetContext.ts diff --git a/Framework/umi/4.3.27/project/src/.umi/core/history.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi/core/history.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi/core/history.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi/core/history.ts diff --git a/Framework/umi/4.3.27/project/src/.umi/core/historyIntelli.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi/core/historyIntelli.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi/core/historyIntelli.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi/core/historyIntelli.ts diff --git a/Framework/umi/4.3.27/project/src/.umi/core/plugin.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi/core/plugin.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi/core/plugin.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi/core/plugin.ts diff --git a/Framework/umi/4.3.27/project/src/.umi/core/pluginConfig.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi/core/pluginConfig.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi/core/pluginConfig.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi/core/pluginConfig.ts diff --git a/Framework/umi/4.3.27/project/src/.umi/core/pluginConfigJoi.d.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi/core/pluginConfigJoi.d.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi/core/pluginConfigJoi.d.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi/core/pluginConfigJoi.d.ts diff --git a/Framework/umi/4.3.27/project/src/.umi/core/polyfill.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi/core/polyfill.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi/core/polyfill.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi/core/polyfill.ts diff --git a/Framework/umi/4.3.27/project/src/.umi/core/route.tsx b/runtimes/frameworks/umi/4.3.27/project/src/.umi/core/route.tsx similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi/core/route.tsx rename to runtimes/frameworks/umi/4.3.27/project/src/.umi/core/route.tsx diff --git a/Framework/umi/4.3.27/project/src/.umi/core/terminal.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi/core/terminal.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi/core/terminal.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi/core/terminal.ts diff --git a/Framework/umi/4.3.27/project/src/.umi/exports.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi/exports.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi/exports.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi/exports.ts diff --git a/Framework/umi/4.3.27/project/src/.umi/testBrowser.tsx b/runtimes/frameworks/umi/4.3.27/project/src/.umi/testBrowser.tsx similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi/testBrowser.tsx rename to runtimes/frameworks/umi/4.3.27/project/src/.umi/testBrowser.tsx diff --git a/Framework/umi/4.3.27/project/src/.umi/tsconfig.json b/runtimes/frameworks/umi/4.3.27/project/src/.umi/tsconfig.json similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi/tsconfig.json rename to runtimes/frameworks/umi/4.3.27/project/src/.umi/tsconfig.json diff --git a/Framework/umi/4.3.27/project/src/.umi/typings.d.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi/typings.d.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi/typings.d.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi/typings.d.ts diff --git a/Framework/umi/4.3.27/project/src/.umi/umi.ts b/runtimes/frameworks/umi/4.3.27/project/src/.umi/umi.ts similarity index 100% rename from Framework/umi/4.3.27/project/src/.umi/umi.ts rename to runtimes/frameworks/umi/4.3.27/project/src/.umi/umi.ts diff --git a/Framework/umi/4.3.27/project/src/assets/yay.jpg b/runtimes/frameworks/umi/4.3.27/project/src/assets/yay.jpg similarity index 100% rename from Framework/umi/4.3.27/project/src/assets/yay.jpg rename to runtimes/frameworks/umi/4.3.27/project/src/assets/yay.jpg diff --git a/Framework/umi/4.3.27/project/src/layouts/index.less b/runtimes/frameworks/umi/4.3.27/project/src/layouts/index.less similarity index 100% rename from Framework/umi/4.3.27/project/src/layouts/index.less rename to runtimes/frameworks/umi/4.3.27/project/src/layouts/index.less diff --git a/Framework/umi/4.3.27/project/src/layouts/index.tsx b/runtimes/frameworks/umi/4.3.27/project/src/layouts/index.tsx similarity index 100% rename from Framework/umi/4.3.27/project/src/layouts/index.tsx rename to runtimes/frameworks/umi/4.3.27/project/src/layouts/index.tsx diff --git a/Framework/umi/4.3.27/project/src/pages/docs.tsx b/runtimes/frameworks/umi/4.3.27/project/src/pages/docs.tsx similarity index 100% rename from Framework/umi/4.3.27/project/src/pages/docs.tsx rename to runtimes/frameworks/umi/4.3.27/project/src/pages/docs.tsx diff --git a/Framework/umi/4.3.27/project/src/pages/index.tsx b/runtimes/frameworks/umi/4.3.27/project/src/pages/index.tsx similarity index 100% rename from Framework/umi/4.3.27/project/src/pages/index.tsx rename to runtimes/frameworks/umi/4.3.27/project/src/pages/index.tsx diff --git a/Framework/umi/4.3.27/project/tsconfig.json b/runtimes/frameworks/umi/4.3.27/project/tsconfig.json similarity index 100% rename from Framework/umi/4.3.27/project/tsconfig.json rename to runtimes/frameworks/umi/4.3.27/project/tsconfig.json diff --git a/Framework/umi/4.3.27/project/typings.d.ts b/runtimes/frameworks/umi/4.3.27/project/typings.d.ts similarity index 100% rename from Framework/umi/4.3.27/project/typings.d.ts rename to runtimes/frameworks/umi/4.3.27/project/typings.d.ts diff --git a/Framework/umi/update_cn_dockerfile.sh b/runtimes/frameworks/umi/update_cn_dockerfile.sh similarity index 100% rename from Framework/umi/update_cn_dockerfile.sh rename to runtimes/frameworks/umi/update_cn_dockerfile.sh diff --git a/runtimes/frameworks/vert.x/4.5.10/Dockerfile b/runtimes/frameworks/vert.x/4.5.10/Dockerfile new file mode 100644 index 00000000..76764ccd --- /dev/null +++ b/runtimes/frameworks/vert.x/4.5.10/Dockerfile @@ -0,0 +1,17 @@ +FROM ghcr.io/labring-actions/devbox/java-openjdk17:latest + +RUN cd /home/devbox/project && \ +rm -rf ./* + +COPY project /home/devbox/project + +RUN chown -R devbox:devbox /home/devbox/project && \ +chmod -R u+rw /home/devbox/project && \ +chmod -R +x /home/devbox/project/entrypoint.sh + +USER devbox +RUN cd /home/devbox/project && \ +mvn package && \ +mvn install + +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/vert.x/4.5.10/project/.editorconfig b/runtimes/frameworks/vert.x/4.5.10/project/.editorconfig similarity index 100% rename from Framework/vert.x/4.5.10/project/.editorconfig rename to runtimes/frameworks/vert.x/4.5.10/project/.editorconfig diff --git a/Framework/vert.x/4.5.10/project/.gitignore b/runtimes/frameworks/vert.x/4.5.10/project/.gitignore similarity index 100% rename from Framework/vert.x/4.5.10/project/.gitignore rename to runtimes/frameworks/vert.x/4.5.10/project/.gitignore diff --git a/Framework/vert.x/4.5.10/project/.mvn/wrapper/maven-wrapper.jar b/runtimes/frameworks/vert.x/4.5.10/project/.mvn/wrapper/maven-wrapper.jar similarity index 100% rename from Framework/vert.x/4.5.10/project/.mvn/wrapper/maven-wrapper.jar rename to runtimes/frameworks/vert.x/4.5.10/project/.mvn/wrapper/maven-wrapper.jar diff --git a/Framework/vert.x/4.5.10/project/.mvn/wrapper/maven-wrapper.properties b/runtimes/frameworks/vert.x/4.5.10/project/.mvn/wrapper/maven-wrapper.properties similarity index 100% rename from Framework/vert.x/4.5.10/project/.mvn/wrapper/maven-wrapper.properties rename to runtimes/frameworks/vert.x/4.5.10/project/.mvn/wrapper/maven-wrapper.properties diff --git a/Framework/vert.x/4.5.10/project/README.adoc b/runtimes/frameworks/vert.x/4.5.10/project/README.adoc similarity index 100% rename from Framework/vert.x/4.5.10/project/README.adoc rename to runtimes/frameworks/vert.x/4.5.10/project/README.adoc diff --git a/Framework/vert.x/4.5.10/project/README.md b/runtimes/frameworks/vert.x/4.5.10/project/README.md similarity index 100% rename from Framework/vert.x/4.5.10/project/README.md rename to runtimes/frameworks/vert.x/4.5.10/project/README.md diff --git a/Framework/vert.x/4.5.10/project/entrypoint.sh b/runtimes/frameworks/vert.x/4.5.10/project/entrypoint.sh similarity index 100% rename from Framework/vert.x/4.5.10/project/entrypoint.sh rename to runtimes/frameworks/vert.x/4.5.10/project/entrypoint.sh diff --git a/Framework/vert.x/4.5.10/project/mvnw b/runtimes/frameworks/vert.x/4.5.10/project/mvnw similarity index 100% rename from Framework/vert.x/4.5.10/project/mvnw rename to runtimes/frameworks/vert.x/4.5.10/project/mvnw diff --git a/Framework/vert.x/4.5.10/project/mvnw.cmd b/runtimes/frameworks/vert.x/4.5.10/project/mvnw.cmd similarity index 100% rename from Framework/vert.x/4.5.10/project/mvnw.cmd rename to runtimes/frameworks/vert.x/4.5.10/project/mvnw.cmd diff --git a/Framework/vert.x/4.5.10/project/pom.xml b/runtimes/frameworks/vert.x/4.5.10/project/pom.xml similarity index 100% rename from Framework/vert.x/4.5.10/project/pom.xml rename to runtimes/frameworks/vert.x/4.5.10/project/pom.xml diff --git a/Framework/vert.x/4.5.10/project/src/main/java/com/hello/starter/MainVerticle.java b/runtimes/frameworks/vert.x/4.5.10/project/src/main/java/com/hello/starter/MainVerticle.java similarity index 100% rename from Framework/vert.x/4.5.10/project/src/main/java/com/hello/starter/MainVerticle.java rename to runtimes/frameworks/vert.x/4.5.10/project/src/main/java/com/hello/starter/MainVerticle.java diff --git a/Framework/vert.x/4.5.10/project/src/test/java/com/hello/starter/TestMainVerticle.java b/runtimes/frameworks/vert.x/4.5.10/project/src/test/java/com/hello/starter/TestMainVerticle.java similarity index 100% rename from Framework/vert.x/4.5.10/project/src/test/java/com/hello/starter/TestMainVerticle.java rename to runtimes/frameworks/vert.x/4.5.10/project/src/test/java/com/hello/starter/TestMainVerticle.java diff --git a/Framework/vert.x/update_cn_dockerfile.sh b/runtimes/frameworks/vert.x/update_cn_dockerfile.sh similarity index 100% rename from Framework/vert.x/update_cn_dockerfile.sh rename to runtimes/frameworks/vert.x/update_cn_dockerfile.sh diff --git a/Framework/vitepress/1.4.0/Dockerfile b/runtimes/frameworks/vitepress/1.4.0/Dockerfile similarity index 66% rename from Framework/vitepress/1.4.0/Dockerfile rename to runtimes/frameworks/vitepress/1.4.0/Dockerfile index 38fbd09d..81ade006 100644 --- a/Framework/vitepress/1.4.0/Dockerfile +++ b/runtimes/frameworks/vitepress/1.4.0/Dockerfile @@ -1,9 +1,9 @@ -FROM ghcr.io/labring-actions/devbox/node.js-20:3b6f7a9 +FROM ghcr.io/labring-actions/devbox/node.js-20:latest USER root RUN cd /home/devbox/project && \ rm -rf ./* - -COPY /Framework/vitepress/1.4.0/project /home/devbox/project + +COPY project /home/devbox/project RUN chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh @@ -14,4 +14,4 @@ npm add -D vitepress && \ npm run-script docs:build -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/vitepress/1.4.0/project/README.md b/runtimes/frameworks/vitepress/1.4.0/project/README.md similarity index 100% rename from Framework/vitepress/1.4.0/project/README.md rename to runtimes/frameworks/vitepress/1.4.0/project/README.md diff --git a/Framework/vitepress/1.4.0/project/docs/api-examples.md b/runtimes/frameworks/vitepress/1.4.0/project/docs/api-examples.md similarity index 100% rename from Framework/vitepress/1.4.0/project/docs/api-examples.md rename to runtimes/frameworks/vitepress/1.4.0/project/docs/api-examples.md diff --git a/Framework/vitepress/1.4.0/project/docs/index.md b/runtimes/frameworks/vitepress/1.4.0/project/docs/index.md similarity index 100% rename from Framework/vitepress/1.4.0/project/docs/index.md rename to runtimes/frameworks/vitepress/1.4.0/project/docs/index.md diff --git a/Framework/vitepress/1.4.0/project/docs/markdown-examples.md b/runtimes/frameworks/vitepress/1.4.0/project/docs/markdown-examples.md similarity index 100% rename from Framework/vitepress/1.4.0/project/docs/markdown-examples.md rename to runtimes/frameworks/vitepress/1.4.0/project/docs/markdown-examples.md diff --git a/Framework/vitepress/1.4.0/project/entrypoint.sh b/runtimes/frameworks/vitepress/1.4.0/project/entrypoint.sh similarity index 100% rename from Framework/vitepress/1.4.0/project/entrypoint.sh rename to runtimes/frameworks/vitepress/1.4.0/project/entrypoint.sh diff --git a/Framework/vitepress/1.4.0/project/package-lock.json b/runtimes/frameworks/vitepress/1.4.0/project/package-lock.json similarity index 100% rename from Framework/vitepress/1.4.0/project/package-lock.json rename to runtimes/frameworks/vitepress/1.4.0/project/package-lock.json diff --git a/Framework/vitepress/1.4.0/project/package.json b/runtimes/frameworks/vitepress/1.4.0/project/package.json similarity index 100% rename from Framework/vitepress/1.4.0/project/package.json rename to runtimes/frameworks/vitepress/1.4.0/project/package.json diff --git a/Framework/vitepress/update_cn_dockerfile.sh b/runtimes/frameworks/vitepress/update_cn_dockerfile.sh similarity index 100% rename from Framework/vitepress/update_cn_dockerfile.sh rename to runtimes/frameworks/vitepress/update_cn_dockerfile.sh diff --git a/Framework/vue/update_cn_dockerfile.sh b/runtimes/frameworks/vue/update_cn_dockerfile.sh similarity index 100% rename from Framework/vue/update_cn_dockerfile.sh rename to runtimes/frameworks/vue/update_cn_dockerfile.sh diff --git a/Framework/vue/v3.4.29/Dockerfile b/runtimes/frameworks/vue/v3.4.29/Dockerfile similarity index 64% rename from Framework/vue/v3.4.29/Dockerfile rename to runtimes/frameworks/vue/v3.4.29/Dockerfile index 85729b39..55ed8d1f 100644 --- a/Framework/vue/v3.4.29/Dockerfile +++ b/runtimes/frameworks/vue/v3.4.29/Dockerfile @@ -1,9 +1,9 @@ -FROM ghcr.io/labring-actions/devbox/node.js-20:3b6f7a9 +FROM ghcr.io/labring-actions/devbox/node.js-20:latest USER root RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Framework/vue/v3.4.29/project /home/devbox/project +COPY project /home/devbox/project RUN chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh @@ -12,5 +12,5 @@ USER devbox RUN cd /home/devbox/project && \ npm install && \ npm run build - -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file + +RUN mkdir -p /home/devbox/.devbox diff --git a/Framework/vue/v3.4.29/project/README.md b/runtimes/frameworks/vue/v3.4.29/project/README.md similarity index 100% rename from Framework/vue/v3.4.29/project/README.md rename to runtimes/frameworks/vue/v3.4.29/project/README.md diff --git a/Framework/vue/v3.4.29/project/entrypoint.sh b/runtimes/frameworks/vue/v3.4.29/project/entrypoint.sh similarity index 100% rename from Framework/vue/v3.4.29/project/entrypoint.sh rename to runtimes/frameworks/vue/v3.4.29/project/entrypoint.sh diff --git a/Framework/vue/v3.4.29/project/index.html b/runtimes/frameworks/vue/v3.4.29/project/index.html similarity index 100% rename from Framework/vue/v3.4.29/project/index.html rename to runtimes/frameworks/vue/v3.4.29/project/index.html diff --git a/Framework/vue/v3.4.29/project/jsconfig.json b/runtimes/frameworks/vue/v3.4.29/project/jsconfig.json similarity index 100% rename from Framework/vue/v3.4.29/project/jsconfig.json rename to runtimes/frameworks/vue/v3.4.29/project/jsconfig.json diff --git a/Framework/vue/v3.4.29/project/package.json b/runtimes/frameworks/vue/v3.4.29/project/package.json similarity index 100% rename from Framework/vue/v3.4.29/project/package.json rename to runtimes/frameworks/vue/v3.4.29/project/package.json diff --git a/Framework/vue/v3.4.29/project/public/favicon.ico b/runtimes/frameworks/vue/v3.4.29/project/public/favicon.ico similarity index 100% rename from Framework/vue/v3.4.29/project/public/favicon.ico rename to runtimes/frameworks/vue/v3.4.29/project/public/favicon.ico diff --git a/Framework/vue/v3.4.29/project/src/App.vue b/runtimes/frameworks/vue/v3.4.29/project/src/App.vue similarity index 100% rename from Framework/vue/v3.4.29/project/src/App.vue rename to runtimes/frameworks/vue/v3.4.29/project/src/App.vue diff --git a/Framework/vue/v3.4.29/project/src/assets/base.css b/runtimes/frameworks/vue/v3.4.29/project/src/assets/base.css similarity index 100% rename from Framework/vue/v3.4.29/project/src/assets/base.css rename to runtimes/frameworks/vue/v3.4.29/project/src/assets/base.css diff --git a/Framework/vue/v3.4.29/project/src/assets/logo.svg b/runtimes/frameworks/vue/v3.4.29/project/src/assets/logo.svg similarity index 100% rename from Framework/vue/v3.4.29/project/src/assets/logo.svg rename to runtimes/frameworks/vue/v3.4.29/project/src/assets/logo.svg diff --git a/Framework/vue/v3.4.29/project/src/assets/main.css b/runtimes/frameworks/vue/v3.4.29/project/src/assets/main.css similarity index 100% rename from Framework/vue/v3.4.29/project/src/assets/main.css rename to runtimes/frameworks/vue/v3.4.29/project/src/assets/main.css diff --git a/Framework/vue/v3.4.29/project/src/components/HelloWorld.vue b/runtimes/frameworks/vue/v3.4.29/project/src/components/HelloWorld.vue similarity index 100% rename from Framework/vue/v3.4.29/project/src/components/HelloWorld.vue rename to runtimes/frameworks/vue/v3.4.29/project/src/components/HelloWorld.vue diff --git a/Framework/vue/v3.4.29/project/src/components/TheWelcome.vue b/runtimes/frameworks/vue/v3.4.29/project/src/components/TheWelcome.vue similarity index 100% rename from Framework/vue/v3.4.29/project/src/components/TheWelcome.vue rename to runtimes/frameworks/vue/v3.4.29/project/src/components/TheWelcome.vue diff --git a/Framework/vue/v3.4.29/project/src/components/WelcomeItem.vue b/runtimes/frameworks/vue/v3.4.29/project/src/components/WelcomeItem.vue similarity index 100% rename from Framework/vue/v3.4.29/project/src/components/WelcomeItem.vue rename to runtimes/frameworks/vue/v3.4.29/project/src/components/WelcomeItem.vue diff --git a/Framework/vue/v3.4.29/project/src/components/icons/IconCommunity.vue b/runtimes/frameworks/vue/v3.4.29/project/src/components/icons/IconCommunity.vue similarity index 100% rename from Framework/vue/v3.4.29/project/src/components/icons/IconCommunity.vue rename to runtimes/frameworks/vue/v3.4.29/project/src/components/icons/IconCommunity.vue diff --git a/Framework/vue/v3.4.29/project/src/components/icons/IconDocumentation.vue b/runtimes/frameworks/vue/v3.4.29/project/src/components/icons/IconDocumentation.vue similarity index 100% rename from Framework/vue/v3.4.29/project/src/components/icons/IconDocumentation.vue rename to runtimes/frameworks/vue/v3.4.29/project/src/components/icons/IconDocumentation.vue diff --git a/Framework/vue/v3.4.29/project/src/components/icons/IconEcosystem.vue b/runtimes/frameworks/vue/v3.4.29/project/src/components/icons/IconEcosystem.vue similarity index 100% rename from Framework/vue/v3.4.29/project/src/components/icons/IconEcosystem.vue rename to runtimes/frameworks/vue/v3.4.29/project/src/components/icons/IconEcosystem.vue diff --git a/Framework/vue/v3.4.29/project/src/components/icons/IconSupport.vue b/runtimes/frameworks/vue/v3.4.29/project/src/components/icons/IconSupport.vue similarity index 100% rename from Framework/vue/v3.4.29/project/src/components/icons/IconSupport.vue rename to runtimes/frameworks/vue/v3.4.29/project/src/components/icons/IconSupport.vue diff --git a/Framework/vue/v3.4.29/project/src/components/icons/IconTooling.vue b/runtimes/frameworks/vue/v3.4.29/project/src/components/icons/IconTooling.vue similarity index 100% rename from Framework/vue/v3.4.29/project/src/components/icons/IconTooling.vue rename to runtimes/frameworks/vue/v3.4.29/project/src/components/icons/IconTooling.vue diff --git a/Framework/vue/v3.4.29/project/src/main.js b/runtimes/frameworks/vue/v3.4.29/project/src/main.js similarity index 100% rename from Framework/vue/v3.4.29/project/src/main.js rename to runtimes/frameworks/vue/v3.4.29/project/src/main.js diff --git a/Framework/vue/v3.4.29/project/vite.config.js b/runtimes/frameworks/vue/v3.4.29/project/vite.config.js similarity index 100% rename from Framework/vue/v3.4.29/project/vite.config.js rename to runtimes/frameworks/vue/v3.4.29/project/vite.config.js diff --git a/Language/c/gcc-12.2.0/Dockerfile b/runtimes/languages/c/gcc-12.2.0/Dockerfile similarity index 76% rename from Language/c/gcc-12.2.0/Dockerfile rename to runtimes/languages/c/gcc-12.2.0/Dockerfile index 16cd00a9..e86d70a2 100644 --- a/Language/c/gcc-12.2.0/Dockerfile +++ b/runtimes/languages/c/gcc-12.2.0/Dockerfile @@ -1,9 +1,9 @@ -FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 +FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Language/c/project /home/devbox/project +COPY project /home/devbox/project RUN apt-get update && \ apt-get install -y gcc g++ make && \ diff --git a/Language/c/project/README.md b/runtimes/languages/c/project/README.md similarity index 100% rename from Language/c/project/README.md rename to runtimes/languages/c/project/README.md diff --git a/Language/c/project/entrypoint.sh b/runtimes/languages/c/project/entrypoint.sh similarity index 100% rename from Language/c/project/entrypoint.sh rename to runtimes/languages/c/project/entrypoint.sh diff --git a/Language/c/project/hello_world.c b/runtimes/languages/c/project/hello_world.c similarity index 100% rename from Language/c/project/hello_world.c rename to runtimes/languages/c/project/hello_world.c diff --git a/Language/c/update_cn_dockerfile.sh b/runtimes/languages/c/update_cn_dockerfile.sh similarity index 100% rename from Language/c/update_cn_dockerfile.sh rename to runtimes/languages/c/update_cn_dockerfile.sh diff --git a/Language/cpp/gcc-12.2.0/Dockerfile b/runtimes/languages/cpp/gcc-12.2.0/Dockerfile similarity index 70% rename from Language/cpp/gcc-12.2.0/Dockerfile rename to runtimes/languages/cpp/gcc-12.2.0/Dockerfile index 48a35cb2..1d735d08 100644 --- a/Language/cpp/gcc-12.2.0/Dockerfile +++ b/runtimes/languages/cpp/gcc-12.2.0/Dockerfile @@ -1,8 +1,8 @@ -FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 +FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Language/cpp/project /home/devbox/project +COPY project /home/devbox/project RUN apt-get update && \ apt-get install -y gcc g++ make && \ @@ -11,5 +11,5 @@ RUN apt-get update && \ chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh - -RUN mkdir /root/.devbox \ No newline at end of file + +RUN mkdir /root/.devbox diff --git a/Language/cpp/project/README.md b/runtimes/languages/cpp/project/README.md similarity index 100% rename from Language/cpp/project/README.md rename to runtimes/languages/cpp/project/README.md diff --git a/Language/cpp/project/entrypoint.sh b/runtimes/languages/cpp/project/entrypoint.sh similarity index 100% rename from Language/cpp/project/entrypoint.sh rename to runtimes/languages/cpp/project/entrypoint.sh diff --git a/Language/cpp/project/hello_world.cpp b/runtimes/languages/cpp/project/hello_world.cpp similarity index 100% rename from Language/cpp/project/hello_world.cpp rename to runtimes/languages/cpp/project/hello_world.cpp diff --git a/Language/cpp/update_cn_dockerfile.sh b/runtimes/languages/cpp/update_cn_dockerfile.sh similarity index 100% rename from Language/cpp/update_cn_dockerfile.sh rename to runtimes/languages/cpp/update_cn_dockerfile.sh diff --git a/Language/go/1.22.5/Dockerfile b/runtimes/languages/go/1.22.5/Dockerfile similarity index 85% rename from Language/go/1.22.5/Dockerfile rename to runtimes/languages/go/1.22.5/Dockerfile index eb28c8f0..603c3cbc 100644 --- a/Language/go/1.22.5/Dockerfile +++ b/runtimes/languages/go/1.22.5/Dockerfile @@ -1,9 +1,9 @@ -FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 +FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Language/go/project /home/devbox/project +COPY project /home/devbox/project RUN curl -O https://dl.google.com/go/go1.22.5.linux-amd64.tar.gz && \ tar -xvf go1.22.5.linux-amd64.tar.gz && \ @@ -21,4 +21,4 @@ RUN curl -O https://dl.google.com/go/go1.22.5.linux-amd64.tar.gz && \ ENV GOPATH=/go ENV PATH=$PATH:/usr/local/go/bin:/go/bin -RUN mkdir /root/.devbox \ No newline at end of file +RUN mkdir /root/.devbox diff --git a/Language/go/1.23.0/Dockerfile b/runtimes/languages/go/1.23.0/Dockerfile similarity index 84% rename from Language/go/1.23.0/Dockerfile rename to runtimes/languages/go/1.23.0/Dockerfile index 3bb9c6a8..19053bc0 100644 --- a/Language/go/1.23.0/Dockerfile +++ b/runtimes/languages/go/1.23.0/Dockerfile @@ -1,9 +1,9 @@ -FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 +FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Language/go/project /home/devbox/project +COPY project /home/devbox/project RUN curl -O https://dl.google.com/go/go1.23.0.linux-amd64.tar.gz && \ tar -xvf go1.23.0.linux-amd64.tar.gz && \ @@ -18,7 +18,7 @@ RUN curl -O https://dl.google.com/go/go1.23.0.linux-amd64.tar.gz && \ chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh - + ENV GOPATH=/go ENV PATH=$PATH:/usr/local/go/bin:/go/bin -RUN mkdir /root/.devbox \ No newline at end of file +RUN mkdir /root/.devbox diff --git a/Language/go/project/README.md b/runtimes/languages/go/project/README.md similarity index 100% rename from Language/go/project/README.md rename to runtimes/languages/go/project/README.md diff --git a/Language/go/project/entrypoint.sh b/runtimes/languages/go/project/entrypoint.sh similarity index 100% rename from Language/go/project/entrypoint.sh rename to runtimes/languages/go/project/entrypoint.sh diff --git a/Language/go/project/main.go b/runtimes/languages/go/project/main.go similarity index 100% rename from Language/go/project/main.go rename to runtimes/languages/go/project/main.go diff --git a/Language/go/update_cn_dockerfile.sh b/runtimes/languages/go/update_cn_dockerfile.sh similarity index 100% rename from Language/go/update_cn_dockerfile.sh rename to runtimes/languages/go/update_cn_dockerfile.sh diff --git a/Language/java/openjdk17/Dockerfile b/runtimes/languages/java/openjdk17/Dockerfile similarity index 90% rename from Language/java/openjdk17/Dockerfile rename to runtimes/languages/java/openjdk17/Dockerfile index b294ea63..3a2a6c78 100644 --- a/Language/java/openjdk17/Dockerfile +++ b/runtimes/languages/java/openjdk17/Dockerfile @@ -1,9 +1,9 @@ -FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 +FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Language/java/project /home/devbox/project +COPY project /home/devbox/project RUN apt-get update && \ apt-get install -y wget && \ @@ -29,4 +29,4 @@ RUN apt-get update && \ ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 ENV PATH=$PATH:$JAVA_HOME/bin -RUN mkdir /root/.devbox \ No newline at end of file +RUN mkdir /root/.devbox diff --git a/Language/java/project/HelloWorld.java b/runtimes/languages/java/project/HelloWorld.java similarity index 100% rename from Language/java/project/HelloWorld.java rename to runtimes/languages/java/project/HelloWorld.java diff --git a/Language/java/project/README.md b/runtimes/languages/java/project/README.md similarity index 100% rename from Language/java/project/README.md rename to runtimes/languages/java/project/README.md diff --git a/Language/java/project/entrypoint.sh b/runtimes/languages/java/project/entrypoint.sh similarity index 100% rename from Language/java/project/entrypoint.sh rename to runtimes/languages/java/project/entrypoint.sh diff --git a/Language/java/settings.xml b/runtimes/languages/java/settings.xml similarity index 100% rename from Language/java/settings.xml rename to runtimes/languages/java/settings.xml diff --git a/Language/java/update_cn_dockerfile.sh b/runtimes/languages/java/update_cn_dockerfile.sh similarity index 100% rename from Language/java/update_cn_dockerfile.sh rename to runtimes/languages/java/update_cn_dockerfile.sh diff --git a/Language/net/8.0/Dockerfile b/runtimes/languages/net/8.0/Dockerfile similarity index 85% rename from Language/net/8.0/Dockerfile rename to runtimes/languages/net/8.0/Dockerfile index d81e8076..28bc86e8 100644 --- a/Language/net/8.0/Dockerfile +++ b/runtimes/languages/net/8.0/Dockerfile @@ -1,9 +1,9 @@ -FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 +FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Language/net/project /home/devbox/project +COPY project /home/devbox/project RUN apt update && \ apt install -y wget && \ diff --git a/Language/net/project/Program.cs b/runtimes/languages/net/project/Program.cs similarity index 100% rename from Language/net/project/Program.cs rename to runtimes/languages/net/project/Program.cs diff --git a/Language/net/project/Properties/launchSettings.json b/runtimes/languages/net/project/Properties/launchSettings.json similarity index 100% rename from Language/net/project/Properties/launchSettings.json rename to runtimes/languages/net/project/Properties/launchSettings.json diff --git a/Language/net/project/README.md b/runtimes/languages/net/project/README.md similarity index 100% rename from Language/net/project/README.md rename to runtimes/languages/net/project/README.md diff --git a/Language/net/project/appsettings.Development.json b/runtimes/languages/net/project/appsettings.Development.json similarity index 100% rename from Language/net/project/appsettings.Development.json rename to runtimes/languages/net/project/appsettings.Development.json diff --git a/Language/net/project/appsettings.json b/runtimes/languages/net/project/appsettings.json similarity index 100% rename from Language/net/project/appsettings.json rename to runtimes/languages/net/project/appsettings.json diff --git a/Language/net/project/entrypoint.sh b/runtimes/languages/net/project/entrypoint.sh similarity index 100% rename from Language/net/project/entrypoint.sh rename to runtimes/languages/net/project/entrypoint.sh diff --git a/Language/net/project/hello_world.csproj b/runtimes/languages/net/project/hello_world.csproj similarity index 100% rename from Language/net/project/hello_world.csproj rename to runtimes/languages/net/project/hello_world.csproj diff --git a/Language/net/project/hello_world.http b/runtimes/languages/net/project/hello_world.http similarity index 100% rename from Language/net/project/hello_world.http rename to runtimes/languages/net/project/hello_world.http diff --git a/Language/net/project/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/runtimes/languages/net/project/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs similarity index 100% rename from Language/net/project/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs rename to runtimes/languages/net/project/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs diff --git a/Language/net/project/obj/Debug/net8.0/apphost b/runtimes/languages/net/project/obj/Debug/net8.0/apphost similarity index 100% rename from Language/net/project/obj/Debug/net8.0/apphost rename to runtimes/languages/net/project/obj/Debug/net8.0/apphost diff --git a/Language/net/project/obj/Debug/net8.0/hello_world.MvcApplicationPartsAssemblyInfo.cache b/runtimes/languages/net/project/obj/Debug/net8.0/hello_wo.51BA16A8.Up2Date similarity index 100% rename from Language/net/project/obj/Debug/net8.0/hello_world.MvcApplicationPartsAssemblyInfo.cache rename to runtimes/languages/net/project/obj/Debug/net8.0/hello_wo.51BA16A8.Up2Date diff --git a/Language/net/project/obj/Debug/net8.0/hello_world.AssemblyInfo.cs b/runtimes/languages/net/project/obj/Debug/net8.0/hello_world.AssemblyInfo.cs similarity index 100% rename from Language/net/project/obj/Debug/net8.0/hello_world.AssemblyInfo.cs rename to runtimes/languages/net/project/obj/Debug/net8.0/hello_world.AssemblyInfo.cs diff --git a/Language/net/project/obj/Debug/net8.0/hello_world.AssemblyInfoInputs.cache b/runtimes/languages/net/project/obj/Debug/net8.0/hello_world.AssemblyInfoInputs.cache similarity index 100% rename from Language/net/project/obj/Debug/net8.0/hello_world.AssemblyInfoInputs.cache rename to runtimes/languages/net/project/obj/Debug/net8.0/hello_world.AssemblyInfoInputs.cache diff --git a/Language/net/project/obj/Debug/net8.0/hello_world.GeneratedMSBuildEditorConfig.editorconfig b/runtimes/languages/net/project/obj/Debug/net8.0/hello_world.GeneratedMSBuildEditorConfig.editorconfig similarity index 100% rename from Language/net/project/obj/Debug/net8.0/hello_world.GeneratedMSBuildEditorConfig.editorconfig rename to runtimes/languages/net/project/obj/Debug/net8.0/hello_world.GeneratedMSBuildEditorConfig.editorconfig diff --git a/Language/net/project/obj/Debug/net8.0/hello_world.GlobalUsings.g.cs b/runtimes/languages/net/project/obj/Debug/net8.0/hello_world.GlobalUsings.g.cs similarity index 100% rename from Language/net/project/obj/Debug/net8.0/hello_world.GlobalUsings.g.cs rename to runtimes/languages/net/project/obj/Debug/net8.0/hello_world.GlobalUsings.g.cs diff --git a/Service/mcp/mcp-proxy/project/py.typed b/runtimes/languages/net/project/obj/Debug/net8.0/hello_world.MvcApplicationPartsAssemblyInfo.cache similarity index 100% rename from Service/mcp/mcp-proxy/project/py.typed rename to runtimes/languages/net/project/obj/Debug/net8.0/hello_world.MvcApplicationPartsAssemblyInfo.cache diff --git a/Language/net/project/obj/Debug/net8.0/hello_world.MvcApplicationPartsAssemblyInfo.cs b/runtimes/languages/net/project/obj/Debug/net8.0/hello_world.MvcApplicationPartsAssemblyInfo.cs similarity index 100% rename from Language/net/project/obj/Debug/net8.0/hello_world.MvcApplicationPartsAssemblyInfo.cs rename to runtimes/languages/net/project/obj/Debug/net8.0/hello_world.MvcApplicationPartsAssemblyInfo.cs diff --git a/Language/net/project/obj/Debug/net8.0/hello_world.assets.cache b/runtimes/languages/net/project/obj/Debug/net8.0/hello_world.assets.cache similarity index 100% rename from Language/net/project/obj/Debug/net8.0/hello_world.assets.cache rename to runtimes/languages/net/project/obj/Debug/net8.0/hello_world.assets.cache diff --git a/Language/net/project/obj/Debug/net8.0/hello_world.csproj.AssemblyReference.cache b/runtimes/languages/net/project/obj/Debug/net8.0/hello_world.csproj.AssemblyReference.cache similarity index 100% rename from Language/net/project/obj/Debug/net8.0/hello_world.csproj.AssemblyReference.cache rename to runtimes/languages/net/project/obj/Debug/net8.0/hello_world.csproj.AssemblyReference.cache diff --git a/Language/net/project/obj/Debug/net8.0/hello_world.csproj.CoreCompileInputs.cache b/runtimes/languages/net/project/obj/Debug/net8.0/hello_world.csproj.CoreCompileInputs.cache similarity index 100% rename from Language/net/project/obj/Debug/net8.0/hello_world.csproj.CoreCompileInputs.cache rename to runtimes/languages/net/project/obj/Debug/net8.0/hello_world.csproj.CoreCompileInputs.cache diff --git a/Language/net/project/obj/Debug/net8.0/hello_world.csproj.FileListAbsolute.txt b/runtimes/languages/net/project/obj/Debug/net8.0/hello_world.csproj.FileListAbsolute.txt similarity index 100% rename from Language/net/project/obj/Debug/net8.0/hello_world.csproj.FileListAbsolute.txt rename to runtimes/languages/net/project/obj/Debug/net8.0/hello_world.csproj.FileListAbsolute.txt diff --git a/Language/net/project/obj/Debug/net8.0/hello_world.dll b/runtimes/languages/net/project/obj/Debug/net8.0/hello_world.dll similarity index 100% rename from Language/net/project/obj/Debug/net8.0/hello_world.dll rename to runtimes/languages/net/project/obj/Debug/net8.0/hello_world.dll diff --git a/Language/net/project/obj/Debug/net8.0/hello_world.genruntimeconfig.cache b/runtimes/languages/net/project/obj/Debug/net8.0/hello_world.genruntimeconfig.cache similarity index 100% rename from Language/net/project/obj/Debug/net8.0/hello_world.genruntimeconfig.cache rename to runtimes/languages/net/project/obj/Debug/net8.0/hello_world.genruntimeconfig.cache diff --git a/Language/net/project/obj/Debug/net8.0/hello_world.pdb b/runtimes/languages/net/project/obj/Debug/net8.0/hello_world.pdb similarity index 100% rename from Language/net/project/obj/Debug/net8.0/hello_world.pdb rename to runtimes/languages/net/project/obj/Debug/net8.0/hello_world.pdb diff --git a/Language/net/project/obj/Debug/net8.0/ref/hello_world.dll b/runtimes/languages/net/project/obj/Debug/net8.0/ref/hello_world.dll similarity index 100% rename from Language/net/project/obj/Debug/net8.0/ref/hello_world.dll rename to runtimes/languages/net/project/obj/Debug/net8.0/ref/hello_world.dll diff --git a/Language/net/project/obj/Debug/net8.0/refint/hello_world.dll b/runtimes/languages/net/project/obj/Debug/net8.0/refint/hello_world.dll similarity index 100% rename from Language/net/project/obj/Debug/net8.0/refint/hello_world.dll rename to runtimes/languages/net/project/obj/Debug/net8.0/refint/hello_world.dll diff --git a/Language/net/project/obj/Debug/net8.0/staticwebassets.build.json b/runtimes/languages/net/project/obj/Debug/net8.0/staticwebassets.build.json similarity index 100% rename from Language/net/project/obj/Debug/net8.0/staticwebassets.build.json rename to runtimes/languages/net/project/obj/Debug/net8.0/staticwebassets.build.json diff --git a/Language/net/project/obj/Debug/net8.0/staticwebassets/msbuild.build.hello_world.props b/runtimes/languages/net/project/obj/Debug/net8.0/staticwebassets/msbuild.build.hello_world.props similarity index 100% rename from Language/net/project/obj/Debug/net8.0/staticwebassets/msbuild.build.hello_world.props rename to runtimes/languages/net/project/obj/Debug/net8.0/staticwebassets/msbuild.build.hello_world.props diff --git a/Language/net/project/obj/Debug/net8.0/staticwebassets/msbuild.buildMultiTargeting.hello_world.props b/runtimes/languages/net/project/obj/Debug/net8.0/staticwebassets/msbuild.buildMultiTargeting.hello_world.props similarity index 100% rename from Language/net/project/obj/Debug/net8.0/staticwebassets/msbuild.buildMultiTargeting.hello_world.props rename to runtimes/languages/net/project/obj/Debug/net8.0/staticwebassets/msbuild.buildMultiTargeting.hello_world.props diff --git a/Language/net/project/obj/Debug/net8.0/staticwebassets/msbuild.buildTransitive.hello_world.props b/runtimes/languages/net/project/obj/Debug/net8.0/staticwebassets/msbuild.buildTransitive.hello_world.props similarity index 100% rename from Language/net/project/obj/Debug/net8.0/staticwebassets/msbuild.buildTransitive.hello_world.props rename to runtimes/languages/net/project/obj/Debug/net8.0/staticwebassets/msbuild.buildTransitive.hello_world.props diff --git a/Language/net/project/obj/hello_world.csproj.nuget.dgspec.json b/runtimes/languages/net/project/obj/hello_world.csproj.nuget.dgspec.json similarity index 100% rename from Language/net/project/obj/hello_world.csproj.nuget.dgspec.json rename to runtimes/languages/net/project/obj/hello_world.csproj.nuget.dgspec.json diff --git a/Language/net/project/obj/hello_world.csproj.nuget.g.props b/runtimes/languages/net/project/obj/hello_world.csproj.nuget.g.props similarity index 100% rename from Language/net/project/obj/hello_world.csproj.nuget.g.props rename to runtimes/languages/net/project/obj/hello_world.csproj.nuget.g.props diff --git a/Language/net/project/obj/hello_world.csproj.nuget.g.targets b/runtimes/languages/net/project/obj/hello_world.csproj.nuget.g.targets similarity index 100% rename from Language/net/project/obj/hello_world.csproj.nuget.g.targets rename to runtimes/languages/net/project/obj/hello_world.csproj.nuget.g.targets diff --git a/Language/net/project/obj/project.assets.json b/runtimes/languages/net/project/obj/project.assets.json similarity index 100% rename from Language/net/project/obj/project.assets.json rename to runtimes/languages/net/project/obj/project.assets.json diff --git a/Language/net/project/obj/project.nuget.cache b/runtimes/languages/net/project/obj/project.nuget.cache similarity index 100% rename from Language/net/project/obj/project.nuget.cache rename to runtimes/languages/net/project/obj/project.nuget.cache diff --git a/Language/net/update_cn_dockerfile.sh b/runtimes/languages/net/update_cn_dockerfile.sh similarity index 100% rename from Language/net/update_cn_dockerfile.sh rename to runtimes/languages/net/update_cn_dockerfile.sh diff --git a/Language/node.js/18/Dockerfile b/runtimes/languages/node.js/18/Dockerfile similarity index 78% rename from Language/node.js/18/Dockerfile rename to runtimes/languages/node.js/18/Dockerfile index aadb7a42..b3c9bf16 100644 --- a/Language/node.js/18/Dockerfile +++ b/runtimes/languages/node.js/18/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 +FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest RUN cd /home/devbox/project && \ rm -rf ./* @@ -7,11 +7,11 @@ USER devbox ENV NODE_VERSION 18 ENV NVM_DIR /home/devbox/.nvm RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash \ - && . $NVM_DIR/nvm.sh + && . $NVM_DIR/nvm.sh USER root -COPY /Language/node.js/project /home/devbox/project - +COPY project /home/devbox/project + RUN apt-get update && \ apt-get install -y curl && \ curl -sL https://deb.nodesource.com/setup_18.x | bash - && \ @@ -23,5 +23,5 @@ RUN apt-get update && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh USER devbox - -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file + +RUN mkdir -p /home/devbox/.devbox diff --git a/Language/node.js/20/Dockerfile b/runtimes/languages/node.js/20/Dockerfile similarity index 78% rename from Language/node.js/20/Dockerfile rename to runtimes/languages/node.js/20/Dockerfile index 9b80ecee..ad5238be 100644 --- a/Language/node.js/20/Dockerfile +++ b/runtimes/languages/node.js/20/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 +FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest RUN cd /home/devbox/project && \ rm -rf ./* @@ -7,11 +7,11 @@ USER devbox ENV NODE_VERSION 20 ENV NVM_DIR /home/devbox/.nvm RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash \ - && . $NVM_DIR/nvm.sh + && . $NVM_DIR/nvm.sh USER root -COPY /Language/node.js/project /home/devbox/project - +COPY project /home/devbox/project + RUN apt-get update && \ apt-get install -y curl && \ curl -sL https://deb.nodesource.com/setup_20.x | bash - && \ @@ -24,4 +24,4 @@ RUN apt-get update && \ chmod -R +x /home/devbox/project/entrypoint.sh USER devbox -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file +RUN mkdir -p /home/devbox/.devbox diff --git a/Language/node.js/22/Dockerfile b/runtimes/languages/node.js/22/Dockerfile similarity index 78% rename from Language/node.js/22/Dockerfile rename to runtimes/languages/node.js/22/Dockerfile index b3d29f5c..d93e7703 100644 --- a/Language/node.js/22/Dockerfile +++ b/runtimes/languages/node.js/22/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 +FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest RUN cd /home/devbox/project && \ rm -rf ./* @@ -7,10 +7,10 @@ USER devbox ENV NODE_VERSION 22 ENV NVM_DIR /home/devbox/.nvm RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash \ - && . $NVM_DIR/nvm.sh + && . $NVM_DIR/nvm.sh USER root -COPY /Language/node.js/project /home/devbox/project +COPY project /home/devbox/project RUN apt-get update && \ apt-get install -y curl && \ @@ -24,4 +24,4 @@ RUN apt-get update && \ chmod -R +x /home/devbox/project/entrypoint.sh USER devbox -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file +RUN mkdir -p /home/devbox/.devbox diff --git a/Language/node.js/project/README.md b/runtimes/languages/node.js/project/README.md similarity index 100% rename from Language/node.js/project/README.md rename to runtimes/languages/node.js/project/README.md diff --git a/Language/node.js/project/entrypoint.sh b/runtimes/languages/node.js/project/entrypoint.sh similarity index 100% rename from Language/node.js/project/entrypoint.sh rename to runtimes/languages/node.js/project/entrypoint.sh diff --git a/Language/node.js/project/hello_world.js b/runtimes/languages/node.js/project/hello_world.js similarity index 100% rename from Language/node.js/project/hello_world.js rename to runtimes/languages/node.js/project/hello_world.js diff --git a/Language/node.js/update_cn_dockerfile.sh b/runtimes/languages/node.js/update_cn_dockerfile.sh similarity index 100% rename from Language/node.js/update_cn_dockerfile.sh rename to runtimes/languages/node.js/update_cn_dockerfile.sh diff --git a/Language/php/7.4/Dockerfile b/runtimes/languages/php/7.4/Dockerfile similarity index 80% rename from Language/php/7.4/Dockerfile rename to runtimes/languages/php/7.4/Dockerfile index fdba0406..c2f5d393 100644 --- a/Language/php/7.4/Dockerfile +++ b/runtimes/languages/php/7.4/Dockerfile @@ -1,10 +1,10 @@ -FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 +FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest RUN cd /home/devbox/project && \ rm -rf ./* - -COPY /Language/php/project /home/devbox/project - + +COPY project /home/devbox/project + RUN apt update && \ apt install -y apt-transport-https lsb-release ca-certificates wget && \ wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg && \ @@ -16,7 +16,7 @@ RUN apt update && \ chmod -R u+rw /home/devbox/project && \ rm -rf /var/lib/apt/lists/* && \ chmod -R +x /home/devbox/project/entrypoint.sh - -COPY /Language/php/php.ini /etc/php/7.4/apache2/php.ini -RUN mkdir /root/.devbox \ No newline at end of file +COPY ../php.ini /etc/php/7.4/apache2/php.ini + +RUN mkdir /root/.devbox diff --git a/Language/php/8.2.20/Dockerfile b/runtimes/languages/php/8.2.20/Dockerfile similarity index 85% rename from Language/php/8.2.20/Dockerfile rename to runtimes/languages/php/8.2.20/Dockerfile index df6e12b1..52ae0c9f 100644 --- a/Language/php/8.2.20/Dockerfile +++ b/runtimes/languages/php/8.2.20/Dockerfile @@ -1,8 +1,8 @@ -FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 +FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest RUN cd /home/devbox/project && \ rm -rf ./* - + COPY /Language/php/project /home/devbox/project RUN apt update && \ @@ -17,6 +17,6 @@ RUN apt update && \ rm -rf /var/lib/apt/lists/* && \ chmod -R +x /home/devbox/project/entrypoint.sh -COPY /Language/php/php.ini /etc/php/8.2/apache2/php.ini +COPY ../php.ini /etc/php/8.2/apache2/php.ini -RUN mkdir /root/.devbox \ No newline at end of file +RUN mkdir /root/.devbox diff --git a/Language/php/php.ini b/runtimes/languages/php/php.ini similarity index 100% rename from Language/php/php.ini rename to runtimes/languages/php/php.ini diff --git a/Language/php/project/README.md b/runtimes/languages/php/project/README.md similarity index 100% rename from Language/php/project/README.md rename to runtimes/languages/php/project/README.md diff --git a/Language/php/project/entrypoint.sh b/runtimes/languages/php/project/entrypoint.sh similarity index 100% rename from Language/php/project/entrypoint.sh rename to runtimes/languages/php/project/entrypoint.sh diff --git a/Language/php/project/hello_world.php b/runtimes/languages/php/project/hello_world.php similarity index 100% rename from Language/php/project/hello_world.php rename to runtimes/languages/php/project/hello_world.php diff --git a/Language/php/update_cn_dockerfile.sh b/runtimes/languages/php/update_cn_dockerfile.sh similarity index 100% rename from Language/php/update_cn_dockerfile.sh rename to runtimes/languages/php/update_cn_dockerfile.sh diff --git a/Language/python/3.10/Dockerfile b/runtimes/languages/python/3.10/Dockerfile similarity index 75% rename from Language/python/3.10/Dockerfile rename to runtimes/languages/python/3.10/Dockerfile index ceff25c5..6ec771a0 100644 --- a/Language/python/3.10/Dockerfile +++ b/runtimes/languages/python/3.10/Dockerfile @@ -1,9 +1,9 @@ -FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 +FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Language/python/project /home/devbox/project +COPY project /home/devbox/project RUN apt-get update && \ apt-get install -y python3.10 python3-pip python3-venv && \ @@ -14,5 +14,5 @@ RUN apt-get update && \ chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh - -RUN mkdir /home/devbox/.devbox \ No newline at end of file + +RUN mkdir /home/devbox/.devbox diff --git a/Language/python/3.11/Dockerfile b/runtimes/languages/python/3.11/Dockerfile similarity index 75% rename from Language/python/3.11/Dockerfile rename to runtimes/languages/python/3.11/Dockerfile index b0b04326..80aa2d6c 100644 --- a/Language/python/3.11/Dockerfile +++ b/runtimes/languages/python/3.11/Dockerfile @@ -1,8 +1,8 @@ -FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 +FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Language/python/project /home/devbox/project +COPY project /home/devbox/project RUN apt-get update && \ apt-get install -y python3.11 python3-pip python3-venv && \ @@ -13,5 +13,5 @@ RUN apt-get update && \ chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh - -RUN mkdir /home/devbox/.devbox \ No newline at end of file + +RUN mkdir /home/devbox/.devbox diff --git a/Language/python/3.12/Dockerfile b/runtimes/languages/python/3.12/Dockerfile similarity index 75% rename from Language/python/3.12/Dockerfile rename to runtimes/languages/python/3.12/Dockerfile index a2a7934b..39ef6bb2 100644 --- a/Language/python/3.12/Dockerfile +++ b/runtimes/languages/python/3.12/Dockerfile @@ -1,8 +1,8 @@ -FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 +FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Language/python/project /home/devbox/project +COPY project /home/devbox/project RUN apt-get update && \ apt-get install -y python3 python3-pip python3-venv && \ @@ -14,4 +14,4 @@ RUN apt-get update && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh -RUN mkdir /home/devbox/.devbox \ No newline at end of file +RUN mkdir /home/devbox/.devbox diff --git a/Language/python/project/README.md b/runtimes/languages/python/project/README.md similarity index 100% rename from Language/python/project/README.md rename to runtimes/languages/python/project/README.md diff --git a/Language/python/project/entrypoint.sh b/runtimes/languages/python/project/entrypoint.sh similarity index 100% rename from Language/python/project/entrypoint.sh rename to runtimes/languages/python/project/entrypoint.sh diff --git a/Language/python/project/hello.py b/runtimes/languages/python/project/hello.py similarity index 100% rename from Language/python/project/hello.py rename to runtimes/languages/python/project/hello.py diff --git a/Language/python/update_cn_dockerfile.sh b/runtimes/languages/python/update_cn_dockerfile.sh similarity index 100% rename from Language/python/update_cn_dockerfile.sh rename to runtimes/languages/python/update_cn_dockerfile.sh diff --git a/Language/rust/1.81.0/Dockerfile b/runtimes/languages/rust/1.81.0/Dockerfile similarity index 75% rename from Language/rust/1.81.0/Dockerfile rename to runtimes/languages/rust/1.81.0/Dockerfile index fe95a256..4d18ee2f 100644 --- a/Language/rust/1.81.0/Dockerfile +++ b/runtimes/languages/rust/1.81.0/Dockerfile @@ -1,15 +1,15 @@ -FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 +FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Language/rust/project /home/devbox/project +COPY project /home/devbox/project USER devbox -RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y USER root - + RUN apt-get update && \ apt-get install -y build-essential && \ apt-get install -y libudev-dev && \ @@ -17,14 +17,14 @@ RUN apt-get update && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* && \ echo 'export PATH=/home/devbox/.cargo/bin:$PATH' >> $HOME/.bashrc && \ - echo '. /home/devbox/.cargo/env' >> $HOME/.bashrc && \ + echo '. /home/devbox/.cargo/env' >> $HOME/.bashrc && \ chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ chmod -R +x /home/devbox/project/entrypoint.sh - + USER devbox ENV PATH="/home/devbox/.cargo/bin:${PATH}" RUN cd /home/devbox/project && \ cargo build --release -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file +RUN mkdir -p /home/devbox/.devbox diff --git a/Language/rust/project/Cargo.lock b/runtimes/languages/rust/project/Cargo.lock similarity index 100% rename from Language/rust/project/Cargo.lock rename to runtimes/languages/rust/project/Cargo.lock diff --git a/Language/rust/project/Cargo.toml b/runtimes/languages/rust/project/Cargo.toml similarity index 100% rename from Language/rust/project/Cargo.toml rename to runtimes/languages/rust/project/Cargo.toml diff --git a/Language/rust/project/README.md b/runtimes/languages/rust/project/README.md similarity index 100% rename from Language/rust/project/README.md rename to runtimes/languages/rust/project/README.md diff --git a/Language/rust/project/entrypoint.sh b/runtimes/languages/rust/project/entrypoint.sh similarity index 100% rename from Language/rust/project/entrypoint.sh rename to runtimes/languages/rust/project/entrypoint.sh diff --git a/Language/rust/project/src/main.rs b/runtimes/languages/rust/project/src/main.rs similarity index 100% rename from Language/rust/project/src/main.rs rename to runtimes/languages/rust/project/src/main.rs diff --git a/OS/debian-ssh/12.6/Dockerfile b/runtimes/operating-systems/debian-ssh/12.6/Dockerfile similarity index 87% rename from OS/debian-ssh/12.6/Dockerfile rename to runtimes/operating-systems/debian-ssh/12.6/Dockerfile index 419d245e..0c37e2d3 100644 --- a/OS/debian-ssh/12.6/Dockerfile +++ b/runtimes/operating-systems/debian-ssh/12.6/Dockerfile @@ -1,6 +1,6 @@ FROM debian:12.6-slim -COPY /script/startup.sh /usr/start/startup.sh +COPY startup.sh /usr/start/startup.sh RUN chmod +x /usr/start/startup.sh && \ apt-get update && \ @@ -25,7 +25,7 @@ RUN chmod +x /usr/start/startup.sh && \ chmod 755 /run/sshd && \ echo 'AllowTcpForwarding yes' >> /etc/ssh/sshd_config && \ echo 'GatewayPorts yes' >> /etc/ssh/sshd_config && \ - echo 'X11Forwarding yes' >> /etc/ssh/sshd_config && \ + echo 'X11Forwarding yes' >> /etc/ssh/sshd_config && \ echo 'Port 22' >> /etc/ssh/sshd_config && \ echo 'AuthorizedKeysFile /usr/start/.ssh/authorized_keys' >> /etc/ssh/sshd_config && \ echo 'PasswordAuthentication no' >> /etc/ssh/sshd_config && \ @@ -38,15 +38,15 @@ RUN chmod +x /usr/start/startup.sh && \ PASS=$(openssl rand -base64 16) && \ echo "devbox:$PASS" | sudo chpasswd && \ chown -R devbox:devbox /home/devbox/.ssh && \ - chmod -R 770 /home/devbox/.ssh - + chmod -R 770 /home/devbox/.ssh + USER devbox -COPY /OS/debian-ssh/project /home/devbox/project +COPY project /home/devbox/project RUN sudo chown -R devbox:devbox /home/devbox/project && \ sudo chmod -R 777 /home/devbox/project ENTRYPOINT ["/usr/bin/dumb-init", "--"] CMD ["sudo", "-E", "/usr/start/startup.sh"] - + WORKDIR /home/devbox/project -EXPOSE 22 \ No newline at end of file +EXPOSE 22 diff --git a/OS/debian-ssh/project/Readme.md b/runtimes/operating-systems/debian-ssh/12.6/project/Readme.md similarity index 100% rename from OS/debian-ssh/project/Readme.md rename to runtimes/operating-systems/debian-ssh/12.6/project/Readme.md diff --git a/OS/debian-ssh/project/entrypoint.sh b/runtimes/operating-systems/debian-ssh/12.6/project/entrypoint.sh old mode 100644 new mode 100755 similarity index 100% rename from OS/debian-ssh/project/entrypoint.sh rename to runtimes/operating-systems/debian-ssh/12.6/project/entrypoint.sh diff --git a/OS/debian-ssh/project/hello.sh b/runtimes/operating-systems/debian-ssh/12.6/project/hello.sh similarity index 100% rename from OS/debian-ssh/project/hello.sh rename to runtimes/operating-systems/debian-ssh/12.6/project/hello.sh diff --git a/script/startup.sh b/runtimes/operating-systems/debian-ssh/12.6/startup.sh similarity index 90% rename from script/startup.sh rename to runtimes/operating-systems/debian-ssh/12.6/startup.sh index d6f12c7a..8a5c08cf 100644 --- a/script/startup.sh +++ b/runtimes/operating-systems/debian-ssh/12.6/startup.sh @@ -2,9 +2,9 @@ if [ ! -z "${SEALOS_DEVBOX_NAME}" ]; then echo "${SEALOS_DEVBOX_NAME}">/etc/hostname -fi +fi echo "${SEALOS_DEVBOX_POD_UID}">/usr/start/pod_id # Start the SSH daemon /usr/sbin/sshd -sleep infinity \ No newline at end of file +sleep infinity diff --git a/OS/debian-ssh/debian.sources b/runtimes/operating-systems/debian-ssh/debian.sources similarity index 100% rename from OS/debian-ssh/debian.sources rename to runtimes/operating-systems/debian-ssh/debian.sources diff --git a/OS/debian-ssh/update_cn_dockerfile.sh b/runtimes/operating-systems/debian-ssh/update_cn_dockerfile.sh similarity index 100% rename from OS/debian-ssh/update_cn_dockerfile.sh rename to runtimes/operating-systems/debian-ssh/update_cn_dockerfile.sh diff --git a/OS/ubuntu-cuda/24.04/Dockerfile b/runtimes/operating-systems/ubuntu-cuda/24.04/Dockerfile similarity index 89% rename from OS/ubuntu-cuda/24.04/Dockerfile rename to runtimes/operating-systems/ubuntu-cuda/24.04/Dockerfile index 7da6df9c..1567826b 100644 --- a/OS/ubuntu-cuda/24.04/Dockerfile +++ b/runtimes/operating-systems/ubuntu-cuda/24.04/Dockerfile @@ -1,6 +1,6 @@ FROM nvidia/cuda:12.4.1-devel-ubuntu22.04 -COPY /script/startup.sh /usr/start/startup.sh +COPY startup.sh /usr/start/startup.sh RUN apt update && \ apt install -y \ @@ -30,7 +30,7 @@ RUN chmod +x /usr/start/startup.sh && \ chmod 755 /run/sshd && \ echo 'AllowTcpForwarding yes' >> /etc/ssh/sshd_config && \ echo 'GatewayPorts yes' >> /etc/ssh/sshd_config && \ - echo 'X11Forwarding yes' >> /etc/ssh/sshd_config && \ + echo 'X11Forwarding yes' >> /etc/ssh/sshd_config && \ echo 'Port 22' >> /etc/ssh/sshd_config && \ echo 'AuthorizedKeysFile /usr/start/.ssh/authorized_keys' >> /etc/ssh/sshd_config && \ echo 'PasswordAuthentication no' >> /etc/ssh/sshd_config && \ @@ -45,10 +45,10 @@ RUN chmod +x /usr/start/startup.sh && \ PASS=$(openssl rand -base64 16) && \ echo "devbox:$PASS" | sudo chpasswd && \ chown -R devbox:devbox /home/devbox/.ssh && \ - chmod -R 770 /home/devbox/.ssh + chmod -R 770 /home/devbox/.ssh USER devbox -COPY /OS/debian-ssh/project /home/devbox/project +COPY project /home/devbox/project RUN sudo chown -R devbox:devbox /home/devbox/project && \ sudo chmod -R 777 /home/devbox/project && \ sudo chmod -R +x /home/devbox/project/entrypoint.sh @@ -57,6 +57,6 @@ USER root ENTRYPOINT ["/usr/bin/dumb-init", "--"] CMD ["sudo", "-E", "/usr/start/startup.sh"] - + WORKDIR /home/devbox/project -EXPOSE 22 \ No newline at end of file +EXPOSE 22 diff --git a/runtimes/operating-systems/ubuntu-cuda/24.04/project/entrypoint.sh b/runtimes/operating-systems/ubuntu-cuda/24.04/project/entrypoint.sh new file mode 100644 index 00000000..4c5199e5 --- /dev/null +++ b/runtimes/operating-systems/ubuntu-cuda/24.04/project/entrypoint.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +./hello.sh diff --git a/OS/ubuntu-cuda/project/hello.sh b/runtimes/operating-systems/ubuntu-cuda/24.04/project/hello.sh similarity index 100% rename from OS/ubuntu-cuda/project/hello.sh rename to runtimes/operating-systems/ubuntu-cuda/24.04/project/hello.sh diff --git a/runtimes/operating-systems/ubuntu-cuda/24.04/startup.sh b/runtimes/operating-systems/ubuntu-cuda/24.04/startup.sh new file mode 100644 index 00000000..8a5c08cf --- /dev/null +++ b/runtimes/operating-systems/ubuntu-cuda/24.04/startup.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ ! -z "${SEALOS_DEVBOX_NAME}" ]; then + echo "${SEALOS_DEVBOX_NAME}">/etc/hostname +fi + +echo "${SEALOS_DEVBOX_POD_UID}">/usr/start/pod_id +# Start the SSH daemon +/usr/sbin/sshd +sleep infinity diff --git a/OS/ubuntu-cuda/sources.list b/runtimes/operating-systems/ubuntu-cuda/sources.list similarity index 100% rename from OS/ubuntu-cuda/sources.list rename to runtimes/operating-systems/ubuntu-cuda/sources.list diff --git a/OS/ubuntu-cuda/update_cn_dockerfile.sh b/runtimes/operating-systems/ubuntu-cuda/update_cn_dockerfile.sh similarity index 100% rename from OS/ubuntu-cuda/update_cn_dockerfile.sh rename to runtimes/operating-systems/ubuntu-cuda/update_cn_dockerfile.sh diff --git a/OS/ubuntu/24.04/Dockerfile b/runtimes/operating-systems/ubuntu/24.04/Dockerfile similarity index 88% rename from OS/ubuntu/24.04/Dockerfile rename to runtimes/operating-systems/ubuntu/24.04/Dockerfile index 70949a14..683af77d 100644 --- a/OS/ubuntu/24.04/Dockerfile +++ b/runtimes/operating-systems/ubuntu/24.04/Dockerfile @@ -1,6 +1,6 @@ FROM ubuntu:24.04 -COPY /script/startup.sh /usr/start/startup.sh +COPY startup.sh /usr/start/startup.sh RUN apt update && \ apt install -y \ @@ -30,7 +30,7 @@ RUN chmod +x /usr/start/startup.sh && \ chmod 755 /run/sshd && \ echo 'AllowTcpForwarding yes' >> /etc/ssh/sshd_config && \ echo 'GatewayPorts yes' >> /etc/ssh/sshd_config && \ - echo 'X11Forwarding yes' >> /etc/ssh/sshd_config && \ + echo 'X11Forwarding yes' >> /etc/ssh/sshd_config && \ echo 'Port 22' >> /etc/ssh/sshd_config && \ echo 'AuthorizedKeysFile /usr/start/.ssh/authorized_keys' >> /etc/ssh/sshd_config && \ echo 'PasswordAuthentication no' >> /etc/ssh/sshd_config && \ @@ -43,10 +43,10 @@ RUN chmod +x /usr/start/startup.sh && \ PASS=$(openssl rand -base64 16) && \ echo "devbox:$PASS" | sudo chpasswd && \ chown -R devbox:devbox /home/devbox/.ssh && \ - chmod -R 770 /home/devbox/.ssh + chmod -R 770 /home/devbox/.ssh USER devbox -COPY /OS/debian-ssh/project /home/devbox/project +COPY project /home/devbox/project RUN sudo chown -R devbox:devbox /home/devbox/project && \ sudo chmod -R 777 /home/devbox/project && \ sudo chmod -R +x /home/devbox/project/entrypoint.sh @@ -56,6 +56,6 @@ USER root ENTRYPOINT ["/usr/bin/dumb-init", "--"] CMD ["sudo", "-E", "/usr/start/startup.sh"] - + WORKDIR /home/devbox/project -EXPOSE 22 \ No newline at end of file +EXPOSE 22 diff --git a/runtimes/operating-systems/ubuntu/24.04/project/entrypoint.sh b/runtimes/operating-systems/ubuntu/24.04/project/entrypoint.sh new file mode 100644 index 00000000..4c5199e5 --- /dev/null +++ b/runtimes/operating-systems/ubuntu/24.04/project/entrypoint.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +./hello.sh diff --git a/OS/ubuntu/project/hello.sh b/runtimes/operating-systems/ubuntu/24.04/project/hello.sh similarity index 100% rename from OS/ubuntu/project/hello.sh rename to runtimes/operating-systems/ubuntu/24.04/project/hello.sh diff --git a/runtimes/operating-systems/ubuntu/24.04/startup.sh b/runtimes/operating-systems/ubuntu/24.04/startup.sh new file mode 100644 index 00000000..8a5c08cf --- /dev/null +++ b/runtimes/operating-systems/ubuntu/24.04/startup.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ ! -z "${SEALOS_DEVBOX_NAME}" ]; then + echo "${SEALOS_DEVBOX_NAME}">/etc/hostname +fi + +echo "${SEALOS_DEVBOX_POD_UID}">/usr/start/pod_id +# Start the SSH daemon +/usr/sbin/sshd +sleep infinity diff --git a/OS/ubuntu/sources.list b/runtimes/operating-systems/ubuntu/sources.list similarity index 100% rename from OS/ubuntu/sources.list rename to runtimes/operating-systems/ubuntu/sources.list diff --git a/OS/ubuntu/update_cn_dockerfile.sh b/runtimes/operating-systems/ubuntu/update_cn_dockerfile.sh similarity index 100% rename from OS/ubuntu/update_cn_dockerfile.sh rename to runtimes/operating-systems/ubuntu/update_cn_dockerfile.sh diff --git a/Service/mcp/csharp-1-0/Dockerfile b/runtimes/services/mcp/csharp-1-0/Dockerfile similarity index 83% rename from Service/mcp/csharp-1-0/Dockerfile rename to runtimes/services/mcp/csharp-1-0/Dockerfile index 1f4e6abe..66112cd7 100644 --- a/Service/mcp/csharp-1-0/Dockerfile +++ b/runtimes/services/mcp/csharp-1-0/Dockerfile @@ -1,10 +1,10 @@ -FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 +FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest USER root RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Service/mcp/csharp-1-0/project /home/devbox/project +COPY project /home/devbox/project RUN chown -R devbox:devbox /home/devbox/project && \ chmod -R u+rw /home/devbox/project && \ @@ -24,4 +24,4 @@ RUN apt update && \ rm -rf /var/lib/apt/lists/* -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file +RUN mkdir -p /home/devbox/.devbox diff --git a/Service/mcp/csharp-1-0/project/.gitignore b/runtimes/services/mcp/csharp-1-0/project/.gitignore similarity index 100% rename from Service/mcp/csharp-1-0/project/.gitignore rename to runtimes/services/mcp/csharp-1-0/project/.gitignore diff --git a/Service/mcp/csharp-1-0/project/AspNetCoreSseServer.csproj b/runtimes/services/mcp/csharp-1-0/project/AspNetCoreSseServer.csproj similarity index 100% rename from Service/mcp/csharp-1-0/project/AspNetCoreSseServer.csproj rename to runtimes/services/mcp/csharp-1-0/project/AspNetCoreSseServer.csproj diff --git a/Service/mcp/csharp-1-0/project/Program.cs b/runtimes/services/mcp/csharp-1-0/project/Program.cs similarity index 100% rename from Service/mcp/csharp-1-0/project/Program.cs rename to runtimes/services/mcp/csharp-1-0/project/Program.cs diff --git a/Service/mcp/csharp-1-0/project/Properties/launchSettings.json b/runtimes/services/mcp/csharp-1-0/project/Properties/launchSettings.json similarity index 100% rename from Service/mcp/csharp-1-0/project/Properties/launchSettings.json rename to runtimes/services/mcp/csharp-1-0/project/Properties/launchSettings.json diff --git a/Service/mcp/csharp-1-0/project/README.md b/runtimes/services/mcp/csharp-1-0/project/README.md similarity index 100% rename from Service/mcp/csharp-1-0/project/README.md rename to runtimes/services/mcp/csharp-1-0/project/README.md diff --git a/Service/mcp/csharp-1-0/project/Tools/EchoTool.cs b/runtimes/services/mcp/csharp-1-0/project/Tools/EchoTool.cs similarity index 100% rename from Service/mcp/csharp-1-0/project/Tools/EchoTool.cs rename to runtimes/services/mcp/csharp-1-0/project/Tools/EchoTool.cs diff --git a/Service/mcp/csharp-1-0/project/Tools/SampleLlmTool.cs b/runtimes/services/mcp/csharp-1-0/project/Tools/SampleLlmTool.cs similarity index 100% rename from Service/mcp/csharp-1-0/project/Tools/SampleLlmTool.cs rename to runtimes/services/mcp/csharp-1-0/project/Tools/SampleLlmTool.cs diff --git a/Service/mcp/csharp-1-0/project/appsettings.json b/runtimes/services/mcp/csharp-1-0/project/appsettings.json similarity index 100% rename from Service/mcp/csharp-1-0/project/appsettings.json rename to runtimes/services/mcp/csharp-1-0/project/appsettings.json diff --git a/Service/mcp/csharp-1-0/project/entrypoint.sh b/runtimes/services/mcp/csharp-1-0/project/entrypoint.sh similarity index 100% rename from Service/mcp/csharp-1-0/project/entrypoint.sh rename to runtimes/services/mcp/csharp-1-0/project/entrypoint.sh diff --git a/Service/mcp/mcp-proxy/Dockerfile b/runtimes/services/mcp/mcp-proxy/Dockerfile similarity index 82% rename from Service/mcp/mcp-proxy/Dockerfile rename to runtimes/services/mcp/mcp-proxy/Dockerfile index 5cceb0bf..b83d5363 100644 --- a/Service/mcp/mcp-proxy/Dockerfile +++ b/runtimes/services/mcp/mcp-proxy/Dockerfile @@ -1,7 +1,7 @@ -FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 +FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest RUN cd /home/devbox/project && \rm -rf ./* -COPY /Service/mcp/mcp-proxy/project /home/devbox/project/project +COPY project /home/devbox/project RUN apt-get update && \ diff --git a/Service/mcp/mcp-proxy/project/README.md b/runtimes/services/mcp/mcp-proxy/project/README.md similarity index 100% rename from Service/mcp/mcp-proxy/project/README.md rename to runtimes/services/mcp/mcp-proxy/project/README.md diff --git a/Service/mcp/mcp-proxy/project/__init__.py b/runtimes/services/mcp/mcp-proxy/project/__init__.py similarity index 100% rename from Service/mcp/mcp-proxy/project/__init__.py rename to runtimes/services/mcp/mcp-proxy/project/__init__.py diff --git a/Service/mcp/mcp-proxy/project/__main__.py b/runtimes/services/mcp/mcp-proxy/project/__main__.py similarity index 100% rename from Service/mcp/mcp-proxy/project/__main__.py rename to runtimes/services/mcp/mcp-proxy/project/__main__.py diff --git a/Service/mcp/mcp-proxy/project/entrypoint.sh b/runtimes/services/mcp/mcp-proxy/project/entrypoint.sh similarity index 100% rename from Service/mcp/mcp-proxy/project/entrypoint.sh rename to runtimes/services/mcp/mcp-proxy/project/entrypoint.sh diff --git a/Service/mcp/mcp-proxy/project/proxy_server.py b/runtimes/services/mcp/mcp-proxy/project/proxy_server.py similarity index 100% rename from Service/mcp/mcp-proxy/project/proxy_server.py rename to runtimes/services/mcp/mcp-proxy/project/proxy_server.py diff --git a/runtimes/services/mcp/mcp-proxy/project/py.typed b/runtimes/services/mcp/mcp-proxy/project/py.typed new file mode 100644 index 00000000..e69de29b diff --git a/Service/mcp/mcp-proxy/project/sse_client.py b/runtimes/services/mcp/mcp-proxy/project/sse_client.py similarity index 100% rename from Service/mcp/mcp-proxy/project/sse_client.py rename to runtimes/services/mcp/mcp-proxy/project/sse_client.py diff --git a/Service/mcp/mcp-proxy/project/sse_server.py b/runtimes/services/mcp/mcp-proxy/project/sse_server.py similarity index 100% rename from Service/mcp/mcp-proxy/project/sse_server.py rename to runtimes/services/mcp/mcp-proxy/project/sse_server.py diff --git a/Service/mcp/python-3-12/Dockerfile b/runtimes/services/mcp/python-3-12/Dockerfile similarity index 83% rename from Service/mcp/python-3-12/Dockerfile rename to runtimes/services/mcp/python-3-12/Dockerfile index c22cbcb3..4894e542 100644 --- a/Service/mcp/python-3-12/Dockerfile +++ b/runtimes/services/mcp/python-3-12/Dockerfile @@ -1,7 +1,7 @@ -FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 +FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest RUN cd /home/devbox/project && \rm -rf ./* -COPY /Service/mcp/python-3-12/project /home/devbox/project +COPY project /home/devbox/project RUN apt-get update && \ apt-get install -y python3 python3-pip python3-venv && \ diff --git a/Service/mcp/python-3-12/project/README.md b/runtimes/services/mcp/python-3-12/project/README.md similarity index 100% rename from Service/mcp/python-3-12/project/README.md rename to runtimes/services/mcp/python-3-12/project/README.md diff --git a/Service/mcp/python-3-12/project/entrypoint.sh b/runtimes/services/mcp/python-3-12/project/entrypoint.sh similarity index 100% rename from Service/mcp/python-3-12/project/entrypoint.sh rename to runtimes/services/mcp/python-3-12/project/entrypoint.sh diff --git a/Service/mcp/python-3-12/project/manage.py b/runtimes/services/mcp/python-3-12/project/manage.py similarity index 100% rename from Service/mcp/python-3-12/project/manage.py rename to runtimes/services/mcp/python-3-12/project/manage.py diff --git a/Service/mcp/spring-boot-3-3-2/Dockerfile b/runtimes/services/mcp/spring-boot-3-3-2/Dockerfile similarity index 91% rename from Service/mcp/spring-boot-3-3-2/Dockerfile rename to runtimes/services/mcp/spring-boot-3-3-2/Dockerfile index aabcaab3..4808bf8e 100644 --- a/Service/mcp/spring-boot-3-3-2/Dockerfile +++ b/runtimes/services/mcp/spring-boot-3-3-2/Dockerfile @@ -1,9 +1,9 @@ -FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 +FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest RUN cd /home/devbox/project && \ rm -rf ./* -COPY /Service/mcp/spring-boot-3-3-2/project /home/devbox/project +COPY project /home/devbox/project RUN apt-get update && \ apt-get install -y wget && \ @@ -33,4 +33,3 @@ RUN mkdir /root/.devbox USER devbox RUN cd /home/devbox/project && \ mvn install - diff --git a/Service/mcp/spring-boot-3-3-2/project/README.md b/runtimes/services/mcp/spring-boot-3-3-2/project/README.md similarity index 100% rename from Service/mcp/spring-boot-3-3-2/project/README.md rename to runtimes/services/mcp/spring-boot-3-3-2/project/README.md diff --git a/Service/mcp/spring-boot-3-3-2/project/entrypoint.sh b/runtimes/services/mcp/spring-boot-3-3-2/project/entrypoint.sh similarity index 100% rename from Service/mcp/spring-boot-3-3-2/project/entrypoint.sh rename to runtimes/services/mcp/spring-boot-3-3-2/project/entrypoint.sh diff --git a/Service/mcp/spring-boot-3-3-2/project/mvnw b/runtimes/services/mcp/spring-boot-3-3-2/project/mvnw similarity index 100% rename from Service/mcp/spring-boot-3-3-2/project/mvnw rename to runtimes/services/mcp/spring-boot-3-3-2/project/mvnw diff --git a/Service/mcp/spring-boot-3-3-2/project/mvnw.cmd b/runtimes/services/mcp/spring-boot-3-3-2/project/mvnw.cmd similarity index 100% rename from Service/mcp/spring-boot-3-3-2/project/mvnw.cmd rename to runtimes/services/mcp/spring-boot-3-3-2/project/mvnw.cmd diff --git a/Service/mcp/spring-boot-3-3-2/project/pom.xml b/runtimes/services/mcp/spring-boot-3-3-2/project/pom.xml similarity index 100% rename from Service/mcp/spring-boot-3-3-2/project/pom.xml rename to runtimes/services/mcp/spring-boot-3-3-2/project/pom.xml diff --git a/Service/mcp/spring-boot-3-3-2/project/src/main/java/com/example/McpServerApplication.java b/runtimes/services/mcp/spring-boot-3-3-2/project/src/main/java/com/example/McpServerApplication.java similarity index 100% rename from Service/mcp/spring-boot-3-3-2/project/src/main/java/com/example/McpServerApplication.java rename to runtimes/services/mcp/spring-boot-3-3-2/project/src/main/java/com/example/McpServerApplication.java diff --git a/Service/mcp/spring-boot-3-3-2/project/src/main/java/com/example/service/DemoService.java b/runtimes/services/mcp/spring-boot-3-3-2/project/src/main/java/com/example/service/DemoService.java similarity index 100% rename from Service/mcp/spring-boot-3-3-2/project/src/main/java/com/example/service/DemoService.java rename to runtimes/services/mcp/spring-boot-3-3-2/project/src/main/java/com/example/service/DemoService.java diff --git a/Service/mcp/spring-boot-3-3-2/project/src/main/resources/application.properties b/runtimes/services/mcp/spring-boot-3-3-2/project/src/main/resources/application.properties similarity index 100% rename from Service/mcp/spring-boot-3-3-2/project/src/main/resources/application.properties rename to runtimes/services/mcp/spring-boot-3-3-2/project/src/main/resources/application.properties diff --git a/Service/mcp/spring-boot-3-3-2/project/src/test/java/com/example/demo/DemoApplicationTests.java b/runtimes/services/mcp/spring-boot-3-3-2/project/src/test/java/com/example/demo/DemoApplicationTests.java similarity index 100% rename from Service/mcp/spring-boot-3-3-2/project/src/test/java/com/example/demo/DemoApplicationTests.java rename to runtimes/services/mcp/spring-boot-3-3-2/project/src/test/java/com/example/demo/DemoApplicationTests.java diff --git a/Service/mcp/typescript-1-8/Dockerfile b/runtimes/services/mcp/typescript-1-8/Dockerfile similarity index 82% rename from Service/mcp/typescript-1-8/Dockerfile rename to runtimes/services/mcp/typescript-1-8/Dockerfile index ed92d698..fc2f19d1 100644 --- a/Service/mcp/typescript-1-8/Dockerfile +++ b/runtimes/services/mcp/typescript-1-8/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 +FROM ghcr.io/labring-actions/devbox/debian-ssh-12.6:latest USER root RUN cd /home/devbox/project && \ @@ -11,7 +11,7 @@ RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | b && . $NVM_DIR/nvm.sh USER root -COPY /Service/mcp/typescript-1-8/project /home/devbox/project +COPY project /home/devbox/project RUN apt-get update && \ apt-get install -y curl && \ @@ -28,4 +28,4 @@ USER devbox RUN cd /home/devbox/project && \ npm install -RUN mkdir -p /home/devbox/.devbox \ No newline at end of file +RUN mkdir -p /home/devbox/.devbox diff --git a/Service/mcp/typescript-1-8/project/.gitignore b/runtimes/services/mcp/typescript-1-8/project/.gitignore similarity index 100% rename from Service/mcp/typescript-1-8/project/.gitignore rename to runtimes/services/mcp/typescript-1-8/project/.gitignore diff --git a/Service/mcp/typescript-1-8/project/README.md b/runtimes/services/mcp/typescript-1-8/project/README.md similarity index 100% rename from Service/mcp/typescript-1-8/project/README.md rename to runtimes/services/mcp/typescript-1-8/project/README.md diff --git a/Service/mcp/typescript-1-8/project/app.ts b/runtimes/services/mcp/typescript-1-8/project/app.ts similarity index 100% rename from Service/mcp/typescript-1-8/project/app.ts rename to runtimes/services/mcp/typescript-1-8/project/app.ts diff --git a/Service/mcp/typescript-1-8/project/entrypoint.sh b/runtimes/services/mcp/typescript-1-8/project/entrypoint.sh similarity index 100% rename from Service/mcp/typescript-1-8/project/entrypoint.sh rename to runtimes/services/mcp/typescript-1-8/project/entrypoint.sh diff --git a/Service/mcp/typescript-1-8/project/package-lock.json b/runtimes/services/mcp/typescript-1-8/project/package-lock.json similarity index 100% rename from Service/mcp/typescript-1-8/project/package-lock.json rename to runtimes/services/mcp/typescript-1-8/project/package-lock.json diff --git a/Service/mcp/typescript-1-8/project/package.json b/runtimes/services/mcp/typescript-1-8/project/package.json similarity index 100% rename from Service/mcp/typescript-1-8/project/package.json rename to runtimes/services/mcp/typescript-1-8/project/package.json diff --git a/Service/mcp/typescript-1-8/project/tsconfig.json b/runtimes/services/mcp/typescript-1-8/project/tsconfig.json similarity index 100% rename from Service/mcp/typescript-1-8/project/tsconfig.json rename to runtimes/services/mcp/typescript-1-8/project/tsconfig.json diff --git a/Service/mcp/typescript-1-8/update_cn_dockerfile.sh b/runtimes/services/mcp/typescript-1-8/update_cn_dockerfile.sh similarity index 100% rename from Service/mcp/typescript-1-8/update_cn_dockerfile.sh rename to runtimes/services/mcp/typescript-1-8/update_cn_dockerfile.sh diff --git a/script/build_and_push_images.sh b/script/build_and_push_images.sh deleted file mode 100644 index 6b77e2c1..00000000 --- a/script/build_and_push_images.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -build_target=$1 -image_name1=$2 -image_name2=$3 -is_cn=$4 - -function build_and_push_image() { - docker buildx build --push \ - --file "$build_target" \ - --platform linux/amd64 \ - --tag "$image_name1" \ - --tag "$image_name2" \ - . -} - -function execute_cn_patch() { - script_dir=$(dirname "$(dirname "$build_target")") - bash "$script_dir/update_cn_dockerfile.sh" "$build_target" -} - -if [ "$is_cn" == "1" ]; then - execute_cn_patch -fi - -build_and_push_image \ No newline at end of file diff --git a/script/build_runtime_cluster_image.sh b/script/build_runtime_cluster_image.sh deleted file mode 100644 index ac9e65bb..00000000 --- a/script/build_runtime_cluster_image.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -RUNTIME_PATH=$1 -RUNTIME_NAME=$2 -CLUSTER_IMAGE_NAME=$3 - -echo "RUNTIME_PATH: $RUNTIME_PATH" -echo "RUNTIME_NAME: $RUNTIME_NAME" -echo "CLUSTER_IMAGE_NAME: $CLUSTER_IMAGE_NAME" - -mkdir -p deploy/$RUNTIME_NAME/manifests -cp $RUNTIME_PATH deploy/$RUNTIME_NAME/manifests/runtime.yaml -cp deploy/demo/Kubefile deploy/$RUNTIME_NAME/ - -cd deploy/$RUNTIME_NAME - -sealos build -t $CLUSTER_IMAGE_NAME . diff --git a/script/clean_unused_runtime.sh b/script/clean_unused_runtime.sh deleted file mode 100644 index 493d9ac8..00000000 --- a/script/clean_unused_runtime.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -REFERENCED_RUNTIMES="referenced_runtimes.txt" -DEPRECATED_RUNTIMES="deprecated_runtimes.txt" - -kubectl get devbox -A -o json | jq -r '.items[].spec.runtimeRef.name' | sort | uniq > "$REFERENCED_RUNTIMES" -kubectl get runtime -n devbox-system -o json | jq -r '.items[] | select(.spec.state == "deprecated") | .metadata.name' | sort | uniq > "$DEPRECATED_RUNTIMES" - -UNREFERENCED_RUNTIMES=$(comm -13 "$REFERENCED_RUNTIMES" "$DEPRECATED_RUNTIMES") - -echo "未被引用的 deprecated runtime:" -echo "$UNREFERENCED_RUNTIMES" - -if [ ! -z "$UNREFERENCED_RUNTIMES" ]; then - echo "正在删除未被引用的 deprecated runtime..." - for runtime in $UNREFERENCED_RUNTIMES; do - kubectl delete runtime "$runtime" -n devbox-system - done -else - echo "没有未被引用的 deprecated runtime 需要删除。" -fi - -rm "$REFERENCED_RUNTIMES" "$DEPRECATED_RUNTIMES" \ No newline at end of file diff --git a/script/generate_json.sh b/script/generate_json.sh deleted file mode 100755 index a9dfe7ab..00000000 --- a/script/generate_json.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash - -echo "PARENT_DIRS=$PARENT_DIRS" -echo "DIFF_OUTPUT=$DIFF_OUTPUT" - -TAG=$1 -CN_TAG=$2 - -IFS=',' read -r -a DIFF_OUTPUT_ARRAY <<< "$DIFF_OUTPUT" -IFS=',' read -r -a PARENT_DIRS_ARRAY <<< "$PARENT_DIRS" - -chmod +x runtimectl - -declare -A NAME_MAP PORT_MAP VERSION_MAP - -load_mappings() { - local file=$1 - local -n map=$2 - while IFS='=' read -r key value; do - map["$key"]="$value" - done < "$file" -} - -load_mappings "configs/name.txt" NAME_MAP -load_mappings "configs/port.txt" PORT_MAP -load_mappings "configs/version.txt" VERSION_MAP - -for i in "${!DIFF_OUTPUT_ARRAY[@]}"; do - DOCKERFILE_PATH=${DIFF_OUTPUT_ARRAY[$i]} - IFS='/' read -ra ADDR <<< $DOCKERFILE_PATH - - PARENT_DIR=${PARENT_DIRS_ARRAY[$i]} - - if [ "${NAME_MAP[${ADDR[1]}]}" == "none" ]; then - exit 1 - fi - - YAML_PATH="${DOCKERFILE_PATH%/*}" - parent_path=$(dirname "$YAML_PATH") - - EN_IMAGE_NAME="${ADDR[1]}-$PARENT_DIR:$TAG" - if [ -f "$parent_path/update_cn_dockerfile.sh" ]; then - CN_IMAGE_NAME="${ADDR[1]}-$PARENT_DIR:$CN_TAG" - else - CN_IMAGE_NAME="${ADDR[1]}-$PARENT_DIR:$TAG" - fi - - ./runtimectl gen --kind=${ADDR[0]} --name=${NAME_MAP[${ADDR[1]}]} --version=$PARENT_DIR --image=ghcr.io/$DOCKER_USERNAME/devbox/$EN_IMAGE_NAME - ./runtimectl gen --kind=${ADDR[0]} --name=${NAME_MAP[${ADDR[1]}]} --version=$PARENT_DIR --image=ghcr.io/$DOCKER_USERNAME/devbox/$CN_IMAGE_NAME --path="config-cn.json" -done diff --git a/script/generate_runtime_yaml.sh b/script/generate_runtime_yaml.sh deleted file mode 100755 index d5a5ac78..00000000 --- a/script/generate_runtime_yaml.sh +++ /dev/null @@ -1,115 +0,0 @@ -#!/bin/bash - -TAG=$1 -CN_TAG=$2 - -IFS=',' read -r -a DIFF_OUTPUT_ARRAY <<< "$DIFF_OUTPUT" -IFS=',' read -r -a PARENT_DIRS_ARRAY <<< "$PARENT_DIRS" - -declare -A NAME_MAP PORT_MAP VERSION_MAP - -load_mappings() { - local file=$1 - local -n map=$2 - while IFS='=' read -r key value; do - map["$key"]="$value" - done < "$file" -} - -load_mappings "configs/name.txt" NAME_MAP -load_mappings "configs/port.txt" PORT_MAP -load_mappings "configs/version.txt" VERSION_MAP - -mkdir -p yaml/en -mkdir -p yaml/cn - -generate_yaml() { - local output_file=$1 - local image_name=$2 - local parent_dir=$3 - local kind=$4 - local runtime=$5 - - cat << EOF > "$output_file" -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: $runtime-${parent_dir//./-}-$(date +"%Y-%m-%d-%H%M") - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "$( [ "$parent_dir" == "$runtime" ] && echo "true" || echo "false" )" -spec: - classRef: $runtime - config: - image: ghcr.io/$DOCKER_USERNAME/devbox/$image_name - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: ${PORT_MAP[$runtime]} - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: $runtime $parent_dir - version: "$parent_dir" - runtimeVersion: $(date +"%Y-%m-%d-%H%M") - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: $runtime -spec: - title: "${NAME_MAP[$runtime]}" - kind: $kind - description: $runtime -EOF -} - -# Iterate over the changed Dockerfiles -for i in "${!DIFF_OUTPUT_ARRAY[@]}"; do - DOCKERFILE_PATH=${DIFF_OUTPUT_ARRAY[$i]} - IFS='/' read -ra ADDR <<< "$DOCKERFILE_PATH" - PARENT_DIR=${PARENT_DIRS_ARRAY[$i]} - - # Check if the name is mapped to "none" - if [[ "${NAME_MAP[${ADDR[1]}]}" == "none" ]]; then - exit 1 - fi - - # Define paths for YAML files and the image names - YAML_PATH="${DOCKERFILE_PATH%/*}" - parent_path=$(dirname "$YAML_PATH") - - EN_IMAGE_NAME="${ADDR[1]}-$PARENT_DIR:$TAG" - if [ -f "$parent_path/update_cn_dockerfile.sh" ]; then - CN_IMAGE_NAME="${ADDR[1]}-$PARENT_DIR:$CN_TAG" - else - CN_IMAGE_NAME="${ADDR[1]}-$PARENT_DIR:$TAG" - fi - - # Define output files - en_output_file="yaml/en/${YAML_PATH}/$PARENT_DIR.yaml" - cn_output_file="yaml/cn/${YAML_PATH}/$PARENT_DIR.yaml" - - # Create the output files if they don’t exist - mkdir -p "yaml/en/${YAML_PATH}" - mkdir -p "yaml/cn/${YAML_PATH}" - if [ ! -f "$en_output_file" ]; then - touch "$en_output_file" - fi - if [ ! -f "$cn_output_file" ]; then - touch "$cn_output_file" - fi - - # Generate and write the English and Chinese YAML configurations - generate_yaml "$en_output_file" "$EN_IMAGE_NAME" "$PARENT_DIR" "${ADDR[0]}" "${ADDR[1]}" - generate_yaml "$cn_output_file" "$CN_IMAGE_NAME" "$PARENT_DIR" "${ADDR[0]}" "${ADDR[1]}" -done \ No newline at end of file diff --git a/script/get_all_dockerfile.sh b/script/get_all_dockerfile.sh deleted file mode 100755 index fc0d9be4..00000000 --- a/script/get_all_dockerfile.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -DOCKERFILES=$(find . -name "Dockerfile" | sed 's|^\./||') -ARRAY_OUTPUT="[" -FIRST=true - -for DOCKERFILE in $DOCKERFILES; do - if [ "$FIRST" = true ]; then - ARRAY_OUTPUT+="\"$DOCKERFILE\"" - FIRST=false - else - ARRAY_OUTPUT+=",\"$DOCKERFILE\"" - fi -done - -ARRAY_OUTPUT+="]" -echo "$ARRAY_OUTPUT" diff --git a/script/get_changed_dockerfile.sh b/script/get_changed_dockerfile.sh deleted file mode 100755 index 34303468..00000000 --- a/script/get_changed_dockerfile.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -if [ "$#" -ne 2 ]; then - echo "Usage: $0 " - exit 1 -fi - -DIFF_OUTPUT=$(git diff --name-only "$1" "$2"|grep Dockerfile) - -ARRAY_OUTPUT="[" -FIRST=true - -for FILE_PATH in $DIFF_OUTPUT; do - if [[ ! -f "$FILE_PATH" ]]; then - echo "File $FILE_PATH does not exist, skipping." - continue - fi - - if [ "$FIRST" = true ]; then - ARRAY_OUTPUT+="\"$FILE_PATH\"" - FIRST=false - else - ARRAY_OUTPUT+=",\"$FILE_PATH\"" - fi -done - -ARRAY_OUTPUT+="]" -echo "$ARRAY_OUTPUT" diff --git a/script/get_image_name.sh b/script/get_image_name.sh deleted file mode 100644 index 4b5fa1f6..00000000 --- a/script/get_image_name.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -if [ "$#" -ne 4 ]; then - echo "Usage: $0 " - exit 1 -fi - -REGISTRY=$1 -NAMESPACE=$2 -BUILD_TARGET=$3 -TAG=$4 - -# 提取镜像标识 -IFS='/' read -ra ADDR <<< "$BUILD_TARGET" -IMAGE_NAME="${ADDR[1]}-${ADDR[2]}" - -if [[ "$REGISTRY" == ghcr.io* ]]; then - # ghcr.io 格式 - echo "$REGISTRY/$NAMESPACE/devbox/$IMAGE_NAME:$TAG" -else - # ACR 格式 - echo "$REGISTRY/$NAMESPACE/$IMAGE_NAME:$TAG" -fi diff --git a/script/sync_cr.sh b/script/sync_cr.sh deleted file mode 100644 index 814b2c5b..00000000 --- a/script/sync_cr.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -chmod +x runtimectl -TMP_FILE=$(mktemp) - -kubectl get runtime -n devbox-system > "$TMP_FILE" - -mapfile -t runtime_lines < "$TMP_FILE" - -for line in "${runtime_lines[@]:1}"; do - read -r name class version runtime_version state <<< "$line" - - if [[ -z "$class" ]]; then - continue - fi - - if [[ -z "$state" ]]; then - state=$runtime_version - runtime_version="" - fi - - if [ "$state" = "active" ];then - read class version image < <(kubectl get runtime $name -n devbox-system -o json | jq -r 'select(.spec.state == "active") | [.spec.classRef, .spec.version, .spec.config.image] | @tsv') - read kind < <(kubectl get runtimeclass.devbox $class -n devbox-system -o json | jq -r '.spec.kind') - ./runtimectl gen --kind=$kind --name=$class --version=$version --image=$image --path=$1 - fi -done - - -rm "$TMP_FILE" diff --git a/script/update_runtime_version.sh b/script/update_runtime_version.sh deleted file mode 100644 index c593cdd2..00000000 --- a/script/update_runtime_version.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -TMP_FILE=$(mktemp) - -kubectl get runtime -A > "$TMP_FILE" - -mapfile -t runtime_lines < "$TMP_FILE" - -declare -A max_versions -declare -A runtime_map - -for line in "${runtime_lines[@]:1}"; do - read -r namespace name class version runtime_version state <<< "$line" - - if [[ -z "$class" ]]; then - continue - fi - - if [[ -z "$state" ]]; then - state=$runtime_version - runtime_version="" - fi - - key="$class:$version" - - if [[ -z "${max_versions[$key]}" ]] || [[ "$runtime_version" > "${max_versions[$key]}" ]]; then - max_versions["$key"]="$runtime_version" - fi - - runtime_map["$key"]+="$namespace $name $state $runtime_version"$'\n' -done - -for key in "${!runtime_map[@]}"; do - latest_version="${max_versions[$key]}" - echo "Latest version for $key is $latest_version" - while IFS= read -r runtime_info; do - read -r namespace name state runtime_version <<< "$runtime_info" - if [[ -z "$namespace" ]]; then - continue - fi - if [[ -z "$runtime_version" && -n "$latest_version" && "$state" != "deprecated" ]]; then - echo "Updating state to deprecated for $namespace/$name (runtime version is empty)" - kubectl patch runtime -n "$namespace" "$name" --type='json' -p='[{"op": "replace", "path": "/spec/state", "value": "deprecated"}]' - elif [[ "$runtime_version" != "$latest_version" && "$state" != "deprecated" ]]; then - echo "Updating state to deprecated for $namespace/$name ($runtime_version)" - kubectl patch runtime -n "$namespace" "$name" --type='json' -p='[{"op": "replace", "path": "/spec/state", "value": "deprecated"}]' - fi - done <<< "${runtime_map[$key]}" -done - -rm "$TMP_FILE" \ No newline at end of file diff --git a/tool/README.md b/tool/README.md new file mode 100644 index 00000000..4318ca5e --- /dev/null +++ b/tool/README.md @@ -0,0 +1,80 @@ +# DevBox Runtime Tool + +This directory contains the `runtimectl` command-line tool for managing DevBox runtime packages. + +## Structure + +``` +tool/ +├── cmd/ # Command-line interface code +│ ├── main.go # Main entry point +│ └── commands.go # Command implementations +├── api/ # Runtime management API +├── go.mod # Go module definition +├── go.sum # Go module checksums +└── README.md # This file +``` + +## Building + +From the project root: + +```bash +# Build the tool +make build + +# Build for all platforms +make build-all + +# Install for development +make dev +``` + +## Usage + +```bash +# List all packages +runtimectl list + +# List frameworks +runtimectl list-frameworks + +# Show package info +runtimectl info vue v3.4.29 + +# Scan packages +runtimectl scan + +# Generate metadata +runtimectl generate-meta + +# CI commands +runtimectl ci build-matrix +runtimectl ci generate-config +``` + +## Development + +```bash +# Setup development environment +make dev-setup + +# Run tests +make test + +# Run code quality checks +make check + +# Format code +make fmt +``` + +## Docker + +```bash +# Build Docker image +make docker-build + +# Run in Docker +make docker-run +``` diff --git a/tool/api/runtime.go b/tool/api/runtime.go new file mode 100644 index 00000000..6f90bdda --- /dev/null +++ b/tool/api/runtime.go @@ -0,0 +1,528 @@ +package api + +import ( + "encoding/json" + "fmt" + "os" + "path/filepath" + "strings" + "time" +) + +// Meta represents package metadata +type Meta struct { + MetaVersion string `json:"metaVersion"` + Name string `json:"name"` + Dependencies map[string]string `json:"dependencies"` +} + +// RuntimeState represents the state of a runtime version +type RuntimeState string + +const ( + StateActive RuntimeState = "active" + StateDeprecated RuntimeState = "deprecated" + StateTesting RuntimeState = "testing" +) + +// PortConfig represents port configuration +type PortConfig struct { + Name string `json:"name"` + Port int `json:"port"` + Protocol string `json:"protocol"` +} + +// RuntimeConfig represents runtime configuration +type RuntimeConfig struct { + AppPorts []PortConfig `json:"appPorts"` + Ports []PortConfig `json:"ports"` + ReleaseArgs []string `json:"releaseArgs"` + ReleaseCommand []string `json:"releaseCommand"` + User string `json:"user"` + WorkingDir string `json:"workingDir"` +} + +// RuntimeVersion represents a specific version of a runtime +type RuntimeVersion struct { + Name string `json:"name"` + Image string `json:"image"` + Config string `json:"config"` + State RuntimeState `json:"state"` + Created time.Time `json:"created,omitempty"` + Updated time.Time `json:"updated,omitempty"` +} + +// RuntimePackage represents a runtime package (Framework, Language, OS, etc.) +type RuntimePackage struct { + Name string `json:"name"` + Kind string `json:"kind"` + Versions []RuntimeVersion `json:"version"` +} + +// RuntimeRegistry represents the complete runtime registry +type RuntimeRegistry struct { + Framework []RuntimePackage `json:"Framework"` + Language []RuntimePackage `json:"Language"` + OS []RuntimePackage `json:"OS"` + Custom []RuntimePackage `json:"Custom"` +} + +// RuntimeMeta represents the complete runtime metadata +type RuntimeMeta struct { + Runtime RuntimeRegistry `json:"runtime"` +} + +// PackageInfo represents package information from filesystem +type PackageInfo struct { + Path string + Name string + Kind string + Version string + Dockerfile string + Project string + Entrypoint string + Config *RuntimeConfig + Port int + DisplayName string + BaseImage string +} + +// Dependency represents a package dependency +type Dependency struct { + Name string `json:"name"` + Version string `json:"version"` + Kind string `json:"kind"` +} + +// PackageDependencies represents dependencies for a package +type PackageDependencies struct { + Package string `json:"package"` + Version string `json:"version"` + Dependencies []Dependency `json:"dependencies"` + BaseImage string `json:"base_image,omitempty"` +} + +// RuntimeManager manages runtime packages and their dependencies +type RuntimeManager struct { + RegistryPath string + Meta *RuntimeMeta + Packages map[string]*PackageInfo + Dependencies map[string]*PackageDependencies +} + +// NewRuntimeManager creates a new runtime manager +func NewRuntimeManager(registryPath string) *RuntimeManager { + return &RuntimeManager{ + RegistryPath: registryPath, + Packages: make(map[string]*PackageInfo), + Dependencies: make(map[string]*PackageDependencies), + } +} + +// LoadMeta loads runtime metadata from JSON files +func (rm *RuntimeManager) LoadMeta() error { + // Try to load from config/registry.json first, then config/registry-cn.json + configFiles := []string{"config/registry.json", "config/registry-cn.json"} + + for _, configFile := range configFiles { + configPath := filepath.Join(rm.RegistryPath, configFile) + if _, err := os.Stat(configPath); err == nil { + data, err := os.ReadFile(configPath) + if err != nil { + continue + } + + var meta RuntimeMeta + if err := json.Unmarshal(data, &meta); err != nil { + continue + } + + rm.Meta = &meta + return nil + } + } + + return fmt.Errorf("no valid config file found") +} + +// ScanPackages scans the filesystem for runtime packages +func (rm *RuntimeManager) ScanPackages() error { + // Scan Framework packages + if err := rm.scanPackageDirectory("runtimes/frameworks", "framework"); err != nil { + return fmt.Errorf("failed to scan frameworks: %w", err) + } + + // Scan Language packages + if err := rm.scanPackageDirectory("runtimes/languages", "language"); err != nil { + return fmt.Errorf("failed to scan languages: %w", err) + } + + // Scan OS packages + if err := rm.scanPackageDirectory("runtimes/operating-systems", "os"); err != nil { + return fmt.Errorf("failed to scan operating-systems: %w", err) + } + + // Scan Service packages + if err := rm.scanPackageDirectory("runtimes/services", "service"); err != nil { + return fmt.Errorf("failed to scan services: %w", err) + } + + return nil +} + +// scanPackageDirectory scans a specific package directory +func (rm *RuntimeManager) scanPackageDirectory(dirName, kind string) error { + dirPath := filepath.Join(rm.RegistryPath, dirName) + if _, err := os.Stat(dirPath); os.IsNotExist(err) { + return nil // Directory doesn't exist, skip + } + + return filepath.Walk(dirPath, func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + + // Look for Dockerfile + if info.Name() == "Dockerfile" { + packageInfo, err := rm.parsePackageFromDockerfile(path, kind) + if err != nil { + return err + } + + if packageInfo != nil { + key := fmt.Sprintf("%s-%s-%s", packageInfo.Kind, packageInfo.Name, packageInfo.Version) + rm.Packages[key] = packageInfo + } + } + + return nil + }) +} + +// parsePackageFromDockerfile parses package information from Dockerfile +func (rm *RuntimeManager) parsePackageFromDockerfile(dockerfilePath, kind string) (*PackageInfo, error) { + // Extract package name and version from path + // e.g., Framework/vue/v3.4.29/Dockerfile -> vue, v3.4.29 + relPath, err := filepath.Rel(rm.RegistryPath, dockerfilePath) + if err != nil { + return nil, err + } + + parts := strings.Split(relPath, string(filepath.Separator)) + if len(parts) < 4 { + return nil, fmt.Errorf("invalid package path: %s", relPath) + } + + packageName := parts[2] // e.g., "vue" from "runtimes/frameworks/vue/v3.4.29/Dockerfile" + version := parts[3] // e.g., "v3.4.29" + + // Read Dockerfile to extract base image and dependencies + dockerfileContent, err := os.ReadFile(dockerfilePath) + if err != nil { + return nil, err + } + + packageInfo := &PackageInfo{ + Path: filepath.Dir(dockerfilePath), + Name: packageName, + Kind: kind, + Version: version, + Dockerfile: dockerfilePath, + Port: rm.getDefaultPort(packageName), + } + + // Parse base image from FROM instruction + lines := strings.Split(string(dockerfileContent), "\n") + for _, line := range lines { + line = strings.TrimSpace(line) + if strings.HasPrefix(line, "FROM ") { + baseImage := strings.TrimPrefix(line, "FROM ") + packageInfo.BaseImage = baseImage + packageInfo.Config = &RuntimeConfig{ + User: "devbox", + WorkingDir: "/home/devbox/project", + } + // Store base image for dependency tracking + rm.Dependencies[fmt.Sprintf("%s-%s", packageName, version)] = &PackageDependencies{ + Package: packageName, + Version: version, + BaseImage: baseImage, + } + break + } + } + + // Check for project directory + projectPath := filepath.Join(packageInfo.Path, "project") + if _, err := os.Stat(projectPath); err == nil { + packageInfo.Project = projectPath + + // Check for entrypoint script + entrypointPath := filepath.Join(projectPath, "entrypoint.sh") + if _, err := os.Stat(entrypointPath); err == nil { + packageInfo.Entrypoint = entrypointPath + } + } + + // Get display name from configs/name.txt + packageInfo.DisplayName = rm.getDisplayName(packageName) + + return packageInfo, nil +} + +// getDefaultPort gets the default port for a package +func (rm *RuntimeManager) getDefaultPort(packageName string) int { + // Try to load from registry.json first + if rm.Meta != nil && rm.Meta.Runtime.Framework != nil { + // Check if we have port mappings in the registry + // This would need to be implemented based on the new structure + } + + // Fallback to default port + return 8080 +} + +// getDisplayName gets the display name for a package +func (rm *RuntimeManager) getDisplayName(packageName string) string { + // Try to load from registry.json first + if rm.Meta != nil && rm.Meta.Runtime.Framework != nil { + // Check if we have name mappings in the registry + // This would need to be implemented based on the new structure + } + + // Fallback to package name + return packageName +} + +// GetPackage returns package information by name and version +func (rm *RuntimeManager) GetPackage(name, version string) (*PackageInfo, error) { + key := fmt.Sprintf("%s-%s", name, version) + for k, pkg := range rm.Packages { + if strings.Contains(k, key) { + return pkg, nil + } + } + return nil, fmt.Errorf("package %s:%s not found", name, version) +} + +// ListPackages returns all packages of a specific kind +func (rm *RuntimeManager) ListPackages(kind string) []*PackageInfo { + var packages []*PackageInfo + for _, pkg := range rm.Packages { + if pkg.Kind == kind { + packages = append(packages, pkg) + } + } + return packages +} + +// GetDependencies returns dependencies for a package +func (rm *RuntimeManager) GetDependencies(name, version string) (*PackageDependencies, error) { + key := fmt.Sprintf("%s-%s", name, version) + if deps, exists := rm.Dependencies[key]; exists { + return deps, nil + } + return nil, fmt.Errorf("dependencies for %s:%s not found", name, version) +} + +// GenerateMeta generates runtime metadata from scanned packages +func (rm *RuntimeManager) GenerateMeta() (*RuntimeMeta, error) { + meta := &RuntimeMeta{ + Runtime: RuntimeRegistry{ + Framework: []RuntimePackage{}, + Language: []RuntimePackage{}, + OS: []RuntimePackage{}, + Custom: []RuntimePackage{}, + }, + } + + // Group packages by kind and name + packageGroups := make(map[string]map[string][]*PackageInfo) + + for _, pkg := range rm.Packages { + if packageGroups[pkg.Kind] == nil { + packageGroups[pkg.Kind] = make(map[string][]*PackageInfo) + } + packageGroups[pkg.Kind][pkg.Name] = append(packageGroups[pkg.Kind][pkg.Name], pkg) + } + + // Convert to RuntimePackage format + for kind, packages := range packageGroups { + var runtimePackages []RuntimePackage + + for _, versions := range packages { + var runtimeVersions []RuntimeVersion + + for _, pkg := range versions { + configJSON, _ := json.Marshal(pkg.Config) + version := RuntimeVersion{ + Name: pkg.Version, + Image: fmt.Sprintf("ghcr.io/labring-actions/devbox/%s-%s:latest", pkg.Name, pkg.Version), + Config: string(configJSON), + State: StateActive, + } + runtimeVersions = append(runtimeVersions, version) + } + + runtimePackage := RuntimePackage{ + Name: versions[0].DisplayName, + Kind: kind, + Versions: runtimeVersions, + } + runtimePackages = append(runtimePackages, runtimePackage) + } + + // Assign to appropriate registry section + switch kind { + case "framework": + meta.Runtime.Framework = runtimePackages + case "language": + meta.Runtime.Language = runtimePackages + case "os": + meta.Runtime.OS = runtimePackages + case "service": + meta.Runtime.Custom = runtimePackages + } + } + + return meta, nil +} + +// DependencyNode represents a node in the dependency graph +type DependencyNode struct { + Path string `json:"path"` + Name string `json:"name"` + Kind string `json:"kind"` + Version string `json:"version"` + BaseImage string `json:"base_image"` + Dependencies []string `json:"dependencies"` + Level int `json:"level"` // 0=base, 1=language, 2=framework +} + +// DependencyGraph represents the complete dependency graph +type DependencyGraph struct { + Nodes []DependencyNode `json:"nodes"` + Levels [][]string `json:"levels"` // Grouped by dependency level +} + +// AnalyzeDependencies analyzes dependencies for all packages +func (rm *RuntimeManager) AnalyzeDependencies() (*DependencyGraph, error) { + graph := &DependencyGraph{ + Nodes: []DependencyNode{}, + Levels: make([][]string, 3), // 3 levels: base, language, framework + } + + // First pass: create all nodes + for _, pkg := range rm.Packages { + node := DependencyNode{ + Path: pkg.Dockerfile, + Name: pkg.Name, + Kind: pkg.Kind, + Version: pkg.Version, + BaseImage: pkg.BaseImage, + Dependencies: []string{}, + } + + // Determine dependency level + switch pkg.Kind { + case "os": + node.Level = 0 // Base level + case "language": + node.Level = 1 // Language level + case "framework", "service": + node.Level = 2 // Framework level + } + + graph.Nodes = append(graph.Nodes, node) + } + + // Second pass: analyze dependencies + for i, node := range graph.Nodes { + deps := rm.extractDependencies(node.BaseImage) + graph.Nodes[i].Dependencies = deps + graph.Levels[node.Level] = append(graph.Levels[node.Level], node.Path) + } + + return graph, nil +} + +// extractDependencies extracts dependencies from a base image reference +func (rm *RuntimeManager) extractDependencies(baseImage string) []string { + var dependencies []string + + // Check if it's a devbox image (has our namespace) + if strings.Contains(baseImage, "ghcr.io/labring-actions/devbox/") { + // Extract package name from image + parts := strings.Split(baseImage, "/") + if len(parts) > 0 { + imageName := parts[len(parts)-1] + // Remove tag if present + if colonIndex := strings.LastIndex(imageName, ":"); colonIndex != -1 { + imageName = imageName[:colonIndex] + } + dependencies = append(dependencies, imageName) + } + } + + return dependencies +} + +// GetBuildOrder returns the build order based on dependencies +func (rm *RuntimeManager) GetBuildOrder() ([]string, error) { + graph, err := rm.AnalyzeDependencies() + if err != nil { + return nil, err + } + + var buildOrder []string + + // Build in level order: base -> language -> framework + for level := 0; level < 3; level++ { + buildOrder = append(buildOrder, graph.Levels[level]...) + } + + return buildOrder, nil +} + +// GetDependenciesForPath returns dependencies for a specific dockerfile path +func (rm *RuntimeManager) GetDependenciesForPath(dockerfilePath string) ([]string, error) { + graph, err := rm.AnalyzeDependencies() + if err != nil { + return nil, err + } + + for _, node := range graph.Nodes { + if node.Path == dockerfilePath { + return node.Dependencies, nil + } + } + + return []string{}, nil +} + +// ValidateDependencies validates that all dependencies are available +func (rm *RuntimeManager) ValidateDependencies() error { + graph, err := rm.AnalyzeDependencies() + if err != nil { + return err + } + + for _, node := range graph.Nodes { + for _, dep := range node.Dependencies { + // Check if dependency exists in our packages + found := false + for _, pkg := range rm.Packages { + expectedImageName := fmt.Sprintf("%s-%s", pkg.Name, pkg.Version) + if expectedImageName == dep { + found = true + break + } + } + if !found { + return fmt.Errorf("dependency %s not found for %s", dep, node.Path) + } + } + } + + return nil +} diff --git a/tool/cmd/commands/ci.go b/tool/cmd/commands/ci.go new file mode 100644 index 00000000..56cc1a55 --- /dev/null +++ b/tool/cmd/commands/ci.go @@ -0,0 +1,29 @@ +package commands + +import ( + "github.com/spf13/cobra" +) + +func NewCICommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + cmd := &cobra.Command{ + Use: "ci", + Short: "CI/CD commands for building and managing runtime packages", + Long: "CI/CD commands for building, analyzing, and managing runtime packages in CI/CD pipelines", + } + + // Add CI subcommands + cmd.AddCommand(NewBuildMatrixCommand(registryPath, outputFormat, quiet)) + cmd.AddCommand(NewImageNameCommand(registryPath, outputFormat, quiet)) + cmd.AddCommand(NewBuildCommand(registryPath, outputFormat, quiet)) + cmd.AddCommand(NewBuildAndPushCommand(registryPath, outputFormat, quiet)) + cmd.AddCommand(NewGenerateConfigCommand(registryPath, outputFormat, quiet)) + cmd.AddCommand(NewGenerateStartupCommand(registryPath, outputFormat, quiet)) + cmd.AddCommand(NewValidateBuildCommand(registryPath, outputFormat, quiet)) + cmd.AddCommand(NewUpdateBaseImageCommand(registryPath, outputFormat, quiet)) + cmd.AddCommand(NewAnalyzeDependenciesCommand(registryPath, outputFormat, quiet)) + cmd.AddCommand(NewBuildOrderCommand(registryPath, outputFormat, quiet)) + cmd.AddCommand(NewValidateDependenciesCommand(registryPath, outputFormat, quiet)) + cmd.AddCommand(NewDependencyGraphCommand(registryPath, outputFormat, quiet)) + + return cmd +} diff --git a/tool/cmd/commands/ci_analyze_dependencies.go b/tool/cmd/commands/ci_analyze_dependencies.go new file mode 100644 index 00000000..3d31d17f --- /dev/null +++ b/tool/cmd/commands/ci_analyze_dependencies.go @@ -0,0 +1,48 @@ +package commands + +import ( + "encoding/json" + "fmt" + + "github.com/labring-actions/devbox-runtime/tool/api" + "github.com/spf13/cobra" +) + +func NewAnalyzeDependenciesCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + cmd := &cobra.Command{ + Use: "analyze-dependencies", + Short: "Analyze package dependencies", + Long: "Analyze dependencies for all packages and generate dependency graph", + RunE: func(cmd *cobra.Command, args []string) error { + manager := api.NewRuntimeManager(*registryPath) + + if err := manager.ScanPackages(); err != nil { + return fmt.Errorf("failed to scan packages: %w", err) + } + + // Analyze dependencies + analysis, err := manager.AnalyzeDependencies() + if err != nil { + return fmt.Errorf("failed to analyze dependencies: %w", err) + } + + // Output analysis + if *outputFormat == "json" { + data, err := json.MarshalIndent(analysis, "", " ") + if err != nil { + return fmt.Errorf("failed to marshal analysis: %w", err) + } + fmt.Println(string(data)) + } else { + fmt.Printf("Dependency Analysis\n") + fmt.Printf("===================\n") + fmt.Printf("Total packages: %d\n", len(analysis.Nodes)) + fmt.Printf("Dependency analysis completed\n") + } + + return nil + }, + } + + return cmd +} diff --git a/tool/cmd/commands/ci_build.go b/tool/cmd/commands/ci_build.go new file mode 100644 index 00000000..85f39007 --- /dev/null +++ b/tool/cmd/commands/ci_build.go @@ -0,0 +1,60 @@ +package commands + +import ( + "fmt" + "os" + "path/filepath" + + "github.com/spf13/cobra" +) + +func NewBuildCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + var cn, push bool + + cmd := &cobra.Command{ + Use: "build ", + Short: "Build and optionally push image", + Long: "Build a Docker image and optionally push it to registry", + Args: cobra.ExactArgs(2), + RunE: func(cmd *cobra.Command, args []string) error { + dockerfile := args[0] + imageName := args[1] + + // Validate dockerfile exists + if _, err := os.Stat(dockerfile); os.IsNotExist(err) { + return fmt.Errorf("dockerfile not found: %s", dockerfile) + } + + // Apply CN modifications if needed + if cn { + if err := applyCNModifications(dockerfile); err != nil { + return fmt.Errorf("failed to apply CN modifications: %w", err) + } + } + + // Build command + dockerfileDir := filepath.Dir(dockerfile) + buildCmd := fmt.Sprintf("docker buildx build --file %s --platform linux/amd64 --tag %s", dockerfile, imageName) + if push { + buildCmd += " --push" + } + buildCmd += " " + dockerfileDir + + if !*quiet { + fmt.Printf("Building image: %s\n", imageName) + fmt.Printf("Command: %s\n", buildCmd) + } + + // In a real implementation, you would execute the build command here + // For now, just output the command + fmt.Println(buildCmd) + + return nil + }, + } + + cmd.Flags().BoolVar(&cn, "cn", false, "Apply CN-specific modifications") + cmd.Flags().BoolVar(&push, "push", false, "Push image to registry") + + return cmd +} diff --git a/tool/cmd/commands/ci_build_and_push.go b/tool/cmd/commands/ci_build_and_push.go new file mode 100644 index 00000000..4060fc94 --- /dev/null +++ b/tool/cmd/commands/ci_build_and_push.go @@ -0,0 +1,57 @@ +package commands + +import ( + "fmt" + "os" + "path/filepath" + + "github.com/spf13/cobra" +) + +func NewBuildAndPushCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + var cn bool + + cmd := &cobra.Command{ + Use: "build-and-push ", + Short: "Build and push image with multiple tags", + Long: "Build a Docker image and push it with multiple tags", + Args: cobra.ExactArgs(3), + RunE: func(cmd *cobra.Command, args []string) error { + dockerfile := args[0] + imageName1 := args[1] + imageName2 := args[2] + + // Validate dockerfile exists + if _, err := os.Stat(dockerfile); os.IsNotExist(err) { + return fmt.Errorf("dockerfile not found: %s", dockerfile) + } + + // Apply CN modifications if needed + if cn { + if err := applyCNModifications(dockerfile); err != nil { + return fmt.Errorf("failed to apply CN modifications: %w", err) + } + } + + // Build and push command with multiple tags + dockerfileDir := filepath.Dir(dockerfile) + buildCmd := fmt.Sprintf("docker buildx build --push --file %s --platform linux/amd64 --tag %s --tag %s %s", + dockerfile, imageName1, imageName2, dockerfileDir) + + if !*quiet { + fmt.Printf("Building and pushing image with tags: %s, %s\n", imageName1, imageName2) + fmt.Printf("Command: %s\n", buildCmd) + } + + // In a real implementation, you would execute the build command here + // For now, just output the command + fmt.Println(buildCmd) + + return nil + }, + } + + cmd.Flags().BoolVar(&cn, "cn", false, "Apply CN-specific modifications") + + return cmd +} diff --git a/tool/cmd/commands/ci_build_matrix.go b/tool/cmd/commands/ci_build_matrix.go new file mode 100644 index 00000000..f90eb387 --- /dev/null +++ b/tool/cmd/commands/ci_build_matrix.go @@ -0,0 +1,50 @@ +package commands + +import ( + "encoding/json" + "fmt" + + "github.com/labring-actions/devbox-runtime/tool/api" + "github.com/spf13/cobra" +) + +func NewBuildMatrixCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + var changed bool + var commit1, commit2 string + var withDependencies bool + + cmd := &cobra.Command{ + Use: "build-matrix", + Short: "Generate build matrix for CI", + Long: "Generate build matrix for CI with optional change detection and dependency analysis", + RunE: func(cmd *cobra.Command, args []string) error { + manager := api.NewRuntimeManager(*registryPath) + + if err := manager.ScanPackages(); err != nil { + return fmt.Errorf("failed to scan packages: %w", err) + } + + // Get build matrix - for now, return all packages as a simple implementation + var matrix []string + for _, pkg := range manager.Packages { + matrix = append(matrix, pkg.Dockerfile) + } + + // Output as JSON + data, err := json.MarshalIndent(matrix, "", " ") + if err != nil { + return fmt.Errorf("failed to marshal build matrix: %w", err) + } + fmt.Println(string(data)) + + return nil + }, + } + + cmd.Flags().BoolVar(&changed, "changed", false, "Only include changed packages") + cmd.Flags().StringVar(&commit1, "commit1", "", "First commit hash for comparison") + cmd.Flags().StringVar(&commit2, "commit2", "", "Second commit hash for comparison") + cmd.Flags().BoolVar(&withDependencies, "with-dependencies", false, "Include dependencies of changed packages") + + return cmd +} diff --git a/tool/cmd/commands/ci_build_order.go b/tool/cmd/commands/ci_build_order.go new file mode 100644 index 00000000..ddc7081c --- /dev/null +++ b/tool/cmd/commands/ci_build_order.go @@ -0,0 +1,49 @@ +package commands + +import ( + "encoding/json" + "fmt" + + "github.com/labring-actions/devbox-runtime/tool/api" + "github.com/spf13/cobra" +) + +func NewBuildOrderCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + cmd := &cobra.Command{ + Use: "build-order", + Short: "Get build order based on dependencies", + Long: "Get the build order for packages based on their dependencies", + RunE: func(cmd *cobra.Command, args []string) error { + manager := api.NewRuntimeManager(*registryPath) + + if err := manager.ScanPackages(); err != nil { + return fmt.Errorf("failed to scan packages: %w", err) + } + + // Get build order + order, err := manager.GetBuildOrder() + if err != nil { + return fmt.Errorf("failed to get build order: %w", err) + } + + // Output build order + if *outputFormat == "json" { + data, err := json.MarshalIndent(order, "", " ") + if err != nil { + return fmt.Errorf("failed to marshal build order: %w", err) + } + fmt.Println(string(data)) + } else { + fmt.Printf("Build Order\n") + fmt.Printf("===========\n") + for i, target := range order { + fmt.Printf("%d. %s\n", i+1, target) + } + } + + return nil + }, + } + + return cmd +} diff --git a/tool/cmd/commands/ci_dependency_graph.go b/tool/cmd/commands/ci_dependency_graph.go new file mode 100644 index 00000000..d4edb475 --- /dev/null +++ b/tool/cmd/commands/ci_dependency_graph.go @@ -0,0 +1,54 @@ +package commands + +import ( + "fmt" + "strings" + + "github.com/labring-actions/devbox-runtime/tool/api" + "github.com/spf13/cobra" +) + +func NewDependencyGraphCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + cmd := &cobra.Command{ + Use: "dependency-graph", + Short: "Generate dependency graph visualization", + Long: "Generate a Mermaid diagram showing package dependencies", + RunE: func(cmd *cobra.Command, args []string) error { + manager := api.NewRuntimeManager(*registryPath) + + if err := manager.ScanPackages(); err != nil { + return fmt.Errorf("failed to scan packages: %w", err) + } + + // Get dependency graph + graph, err := manager.AnalyzeDependencies() + if err != nil { + return fmt.Errorf("failed to get dependency graph: %w", err) + } + + // Output Mermaid diagram + fmt.Println("```mermaid") + fmt.Println("graph TD") + + // Add nodes + for _, node := range graph.Nodes { + nodeId := strings.ReplaceAll(node.Name, "-", "_") + nodeLabel := fmt.Sprintf("%s (%s)", node.Name, node.Version) + + // Add node + fmt.Printf(" %s[\"%s\"]\n", nodeId, nodeLabel) + + // Add dependencies + for _, dep := range node.Dependencies { + depId := strings.ReplaceAll(dep, "-", "_") + fmt.Printf(" %s --> %s\n", depId, nodeId) + } + } + + fmt.Println("```") + return nil + }, + } + + return cmd +} diff --git a/tool/cmd/commands/ci_generate_config.go b/tool/cmd/commands/ci_generate_config.go new file mode 100644 index 00000000..f3b60a2f --- /dev/null +++ b/tool/cmd/commands/ci_generate_config.go @@ -0,0 +1,60 @@ +package commands + +import ( + "encoding/json" + "fmt" + "os" + + "github.com/labring-actions/devbox-runtime/tool/api" + "github.com/spf13/cobra" +) + +func NewGenerateConfigCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + var cn bool + var tag string + + cmd := &cobra.Command{ + Use: "generate-config", + Short: "Generate runtime configuration", + Long: "Generate runtime configuration files for the registry", + RunE: func(cmd *cobra.Command, args []string) error { + manager := api.NewRuntimeManager(*registryPath) + + if err := manager.ScanPackages(); err != nil { + return fmt.Errorf("failed to scan packages: %w", err) + } + + // Generate metadata + meta, err := manager.GenerateMeta() + if err != nil { + return fmt.Errorf("failed to generate metadata: %w", err) + } + + // Output to appropriate file + outputFile := "config/registry.json" + if cn { + outputFile = "config/registry-cn.json" + } + + data, err := json.MarshalIndent(meta, "", " ") + if err != nil { + return fmt.Errorf("failed to marshal metadata: %w", err) + } + + if err := os.WriteFile(outputFile, data, 0644); err != nil { + return fmt.Errorf("failed to write config file: %w", err) + } + + if !*quiet { + fmt.Printf("Generated runtime config: %s\n", outputFile) + } + + return nil + }, + } + + cmd.Flags().BoolVar(&cn, "cn", false, "Generate CN-specific configuration") + cmd.Flags().StringVar(&tag, "tag", "latest", "Tag for the configuration") + + return cmd +} diff --git a/tool/cmd/commands/ci_generate_startup.go b/tool/cmd/commands/ci_generate_startup.go new file mode 100644 index 00000000..98b20bcf --- /dev/null +++ b/tool/cmd/commands/ci_generate_startup.go @@ -0,0 +1,58 @@ +package commands + +import ( + "fmt" + "os" + "path/filepath" + + "github.com/spf13/cobra" +) + +func NewGenerateStartupCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + var outputPath string + + cmd := &cobra.Command{ + Use: "generate-startup", + Short: "Generate startup script for containers", + Long: "Generate startup script for containers with SSH daemon and environment setup", + RunE: func(cmd *cobra.Command, args []string) error { + startupScript := `#!/bin/bash + +# Set hostname if SEALOS_DEVBOX_NAME is provided +if [ ! -z "${SEALOS_DEVBOX_NAME}" ]; then + echo "${SEALOS_DEVBOX_NAME}" > /etc/hostname +fi + +# Store pod UID +echo "${SEALOS_DEVBOX_POD_UID}" > /usr/start/pod_id + +# Start the SSH daemon +/usr/sbin/sshd + +# Keep container running +sleep infinity +` + + // Create output directory if it doesn't exist + outputDir := filepath.Dir(outputPath) + if err := os.MkdirAll(outputDir, 0755); err != nil { + return fmt.Errorf("failed to create output directory: %w", err) + } + + // Write startup script + if err := os.WriteFile(outputPath, []byte(startupScript), 0755); err != nil { + return fmt.Errorf("failed to write startup script: %w", err) + } + + if !*quiet { + fmt.Printf("Generated startup script: %s\n", outputPath) + } + + return nil + }, + } + + cmd.Flags().StringVar(&outputPath, "output", "/usr/start/startup.sh", "Output path for startup script") + + return cmd +} diff --git a/tool/cmd/commands/ci_image_name.go b/tool/cmd/commands/ci_image_name.go new file mode 100644 index 00000000..d8e4907b --- /dev/null +++ b/tool/cmd/commands/ci_image_name.go @@ -0,0 +1,49 @@ +package commands + +import ( + "fmt" + "strings" + + "github.com/spf13/cobra" +) + +func NewImageNameCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + cmd := &cobra.Command{ + Use: "image-name ", + Short: "Generate image name for build", + Long: "Generate full image name for a given dockerfile, registry, namespace, and tag", + Args: cobra.ExactArgs(4), + RunE: func(cmd *cobra.Command, args []string) error { + dockerfile := args[0] + registry := args[1] + namespace := args[2] + tag := args[3] + + // Extract image name from dockerfile path + parts := strings.Split(dockerfile, "/") + if len(parts) < 3 { + return fmt.Errorf("invalid dockerfile path: %s", dockerfile) + } + + // Format: runtimes/kind/name/version/Dockerfile + name := parts[2] + version := parts[3] + + imageName := fmt.Sprintf("%s-%s", name, version) + + // Generate full image name + if strings.Contains(registry, "ghcr.io") { + fullName := fmt.Sprintf("%s/%s/devbox/%s:%s", registry, namespace, imageName, tag) + fmt.Println(fullName) + } else { + // ACR format + fullName := fmt.Sprintf("%s/%s/%s:%s", registry, namespace, imageName, tag) + fmt.Println(fullName) + } + + return nil + }, + } + + return cmd +} diff --git a/tool/cmd/commands/ci_update_base_image.go b/tool/cmd/commands/ci_update_base_image.go new file mode 100644 index 00000000..bd759afc --- /dev/null +++ b/tool/cmd/commands/ci_update_base_image.go @@ -0,0 +1,58 @@ +package commands + +import ( + "fmt" + "os" + "strings" + + "github.com/spf13/cobra" +) + +func NewUpdateBaseImageCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + cmd := &cobra.Command{ + Use: "update-base-image ", + Short: "Update base image in Dockerfile", + Long: "Update the base image reference in a Dockerfile", + Args: cobra.ExactArgs(2), + RunE: func(cmd *cobra.Command, args []string) error { + dockerfile := args[0] + baseImageName := args[1] + + // Read dockerfile + content, err := os.ReadFile(dockerfile) + if err != nil { + return fmt.Errorf("failed to read dockerfile: %w", err) + } + + // Find and replace FROM line + lines := strings.Split(string(content), "\n") + modified := false + + for i, line := range lines { + if strings.HasPrefix(strings.TrimSpace(line), "FROM ") { + lines[i] = fmt.Sprintf("FROM %s", baseImageName) + modified = true + break + } + } + + if !modified { + return fmt.Errorf("no FROM line found in dockerfile") + } + + // Write back + modifiedContent := strings.Join(lines, "\n") + if err := os.WriteFile(dockerfile, []byte(modifiedContent), 0644); err != nil { + return fmt.Errorf("failed to write modified dockerfile: %w", err) + } + + if !*quiet { + fmt.Printf("Updated base image in %s to: %s\n", dockerfile, baseImageName) + } + + return nil + }, + } + + return cmd +} diff --git a/tool/cmd/commands/ci_validate_build.go b/tool/cmd/commands/ci_validate_build.go new file mode 100644 index 00000000..55fb5e08 --- /dev/null +++ b/tool/cmd/commands/ci_validate_build.go @@ -0,0 +1,55 @@ +package commands + +import ( + "fmt" + "os" + "path/filepath" + "strings" + + "github.com/spf13/cobra" +) + +func NewValidateBuildCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + cmd := &cobra.Command{ + Use: "validate-build ", + Short: "Validate build configuration", + Long: "Validate build configuration for a specific dockerfile", + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + dockerfile := args[0] + + // Check if dockerfile exists + if _, err := os.Stat(dockerfile); os.IsNotExist(err) { + return fmt.Errorf("dockerfile not found: %s", dockerfile) + } + + // Check if dockerfile is in correct location + if !strings.HasPrefix(dockerfile, "runtimes/") { + return fmt.Errorf("dockerfile must be in runtimes/ directory: %s", dockerfile) + } + + // Validate path structure + parts := strings.Split(dockerfile, "/") + if len(parts) < 4 { + return fmt.Errorf("invalid dockerfile path structure: %s", dockerfile) + } + + // Check for required files + dir := filepath.Dir(dockerfile) + projectDir := filepath.Join(dir, "project") + if _, err := os.Stat(projectDir); os.IsNotExist(err) { + if !*quiet { + fmt.Printf("Warning: project directory not found: %s\n", projectDir) + } + } + + if !*quiet { + fmt.Printf("Build validation passed for: %s\n", dockerfile) + } + + return nil + }, + } + + return cmd +} diff --git a/tool/cmd/commands/ci_validate_dependencies.go b/tool/cmd/commands/ci_validate_dependencies.go new file mode 100644 index 00000000..4e6a7e0e --- /dev/null +++ b/tool/cmd/commands/ci_validate_dependencies.go @@ -0,0 +1,37 @@ +package commands + +import ( + "fmt" + + "github.com/labring-actions/devbox-runtime/tool/api" + "github.com/spf13/cobra" +) + +func NewValidateDependenciesCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + cmd := &cobra.Command{ + Use: "validate-dependencies", + Short: "Validate all dependencies", + Long: "Validate that all package dependencies are available and correctly configured", + RunE: func(cmd *cobra.Command, args []string) error { + manager := api.NewRuntimeManager(*registryPath) + + if err := manager.ScanPackages(); err != nil { + return fmt.Errorf("failed to scan packages: %w", err) + } + + // Validate dependencies + err := manager.ValidateDependencies() + if err != nil { + return fmt.Errorf("dependency validation failed: %w", err) + } + + if !*quiet { + fmt.Println("All dependencies are valid") + } + + return nil + }, + } + + return cmd +} diff --git a/tool/cmd/commands/cn_modifications.go b/tool/cmd/commands/cn_modifications.go new file mode 100644 index 00000000..8681cf7d --- /dev/null +++ b/tool/cmd/commands/cn_modifications.go @@ -0,0 +1,68 @@ +package commands + +import ( + "fmt" + "os" + "os/exec" + "path/filepath" +) + +// TODO: refactor this, use dockerfile.template to generate the dockerfile +func applyCNModifications(dockerfile string) error { + // Find the update_cn_dockerfile.sh script + scriptPath, err := findUpdateScript(dockerfile) + if err != nil { + return fmt.Errorf("failed to find update_cn_dockerfile.sh script: %w", err) + } + + // Check if script exists and is executable + if _, err := os.Stat(scriptPath); os.IsNotExist(err) { + return fmt.Errorf("update_cn_dockerfile.sh script not found at: %s", scriptPath) + } + + // Make sure script is executable + if err := os.Chmod(scriptPath, 0755); err != nil { + return fmt.Errorf("failed to make script executable: %w", err) + } + + // Execute the script + cmd := exec.Command(scriptPath, dockerfile) + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + + if err := cmd.Run(); err != nil { + return fmt.Errorf("failed to execute update script: %w", err) + } + + fmt.Printf("Applied CN modifications to: %s using script: %s\n", dockerfile, scriptPath) + return nil +} + +func findUpdateScript(dockerfile string) (string, error) { + // Get the directory containing the dockerfile + dockerfileDir := filepath.Dir(dockerfile) + + // Look for update_cn_dockerfile.sh in the same directory + scriptPath := filepath.Join(dockerfileDir, "update_cn_dockerfile.sh") + if _, err := os.Stat(scriptPath); err == nil { + return scriptPath, nil + } + + // Look in parent directories + currentDir := dockerfileDir + for { + parentDir := filepath.Dir(currentDir) + if parentDir == currentDir { + break // Reached root + } + + scriptPath := filepath.Join(currentDir, "update_cn_dockerfile.sh") + if _, err := os.Stat(scriptPath); err == nil { + return scriptPath, nil + } + + currentDir = parentDir + } + + return "", fmt.Errorf("update_cn_dockerfile.sh script not found in any parent directory") +} diff --git a/tool/cmd/commands/dependencies.go b/tool/cmd/commands/dependencies.go new file mode 100644 index 00000000..f38ede13 --- /dev/null +++ b/tool/cmd/commands/dependencies.go @@ -0,0 +1,87 @@ +package commands + +import ( + "fmt" + "os" + "text/tabwriter" + + "github.com/labring-actions/devbox-runtime/tool/api" + "github.com/spf13/cobra" +) + +func NewDependenciesCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + cmd := &cobra.Command{ + Use: "dependencies [version]", + Short: "Show dependencies for a package", + Long: "Show dependencies for a specific package and version", + Args: cobra.MinimumNArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + manager := api.NewRuntimeManager(*registryPath) + + if err := manager.ScanPackages(); err != nil { + return fmt.Errorf("failed to scan packages: %w", err) + } + + name := args[0] + version := "" + if len(args) > 1 { + version = args[1] + } + + // Find package + var pkg *api.PackageInfo + var err error + + if version != "" { + pkg, err = manager.GetPackage(name, version) + } else { + // Find latest version + packages := manager.ListPackages("") + for _, p := range packages { + if p.Name == name { + if pkg == nil || p.Version > pkg.Version { + pkg = p + } + } + } + if pkg == nil { + err = fmt.Errorf("package %s not found", name) + } + } + + if err != nil { + return err + } + + // Get dependencies + deps, err := manager.GetDependencies(pkg.Name, pkg.Version) + if err != nil { + return fmt.Errorf("failed to get dependencies: %w", err) + } + + if *outputFormat == "json" { + return outputDependenciesJSON(deps) + } + + // Output dependencies in table format + fmt.Printf("Dependencies for %s %s\n", pkg.DisplayName, pkg.Version) + fmt.Printf("========================\n") + if len(deps.Dependencies) == 0 { + fmt.Println("No dependencies") + return nil + } + + w := tabwriter.NewWriter(os.Stdout, 0, 0, 2, ' ', 0) + fmt.Fprintln(w, "Name\tVersion\tKind") + fmt.Fprintln(w, "----\t-------\t----") + for _, dep := range deps.Dependencies { + fmt.Fprintf(w, "%s\t%s\t%s\n", dep.Name, dep.Version, dep.Kind) + } + w.Flush() + + return nil + }, + } + + return cmd +} diff --git a/tool/cmd/commands/generate_meta.go b/tool/cmd/commands/generate_meta.go new file mode 100644 index 00000000..657c9e72 --- /dev/null +++ b/tool/cmd/commands/generate_meta.go @@ -0,0 +1,43 @@ +package commands + +import ( + "fmt" + + "github.com/labring-actions/devbox-runtime/tool/api" + "github.com/spf13/cobra" +) + +func NewGenerateMetaCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + cmd := &cobra.Command{ + Use: "generate-meta", + Short: "Generate runtime metadata from scanned packages", + Long: "Generate runtime metadata from scanned packages and output to config files", + RunE: func(cmd *cobra.Command, args []string) error { + manager := api.NewRuntimeManager(*registryPath) + + if err := manager.ScanPackages(); err != nil { + return fmt.Errorf("failed to scan packages: %w", err) + } + + meta, err := manager.GenerateMeta() + if err != nil { + return fmt.Errorf("failed to generate metadata: %w", err) + } + + if *outputFormat == "json" { + return outputMetaJSON(meta) + } + + // Output summary + fmt.Printf("Generated metadata for %d packages\n", len(manager.Packages)) + fmt.Printf("Frameworks: %d\n", len(meta.Runtime.Framework)) + fmt.Printf("Languages: %d\n", len(meta.Runtime.Language)) + fmt.Printf("OS: %d\n", len(meta.Runtime.OS)) + fmt.Printf("Custom: %d\n", len(meta.Runtime.Custom)) + + return nil + }, + } + + return cmd +} diff --git a/tool/cmd/commands/info.go b/tool/cmd/commands/info.go new file mode 100644 index 00000000..7cd75089 --- /dev/null +++ b/tool/cmd/commands/info.go @@ -0,0 +1,78 @@ +package commands + +import ( + "fmt" + + "github.com/labring-actions/devbox-runtime/tool/api" + "github.com/spf13/cobra" +) + +func NewInfoCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + cmd := &cobra.Command{ + Use: "info [version]", + Short: "Show detailed information about a package", + Long: "Show detailed information about a specific package and version", + Args: cobra.MinimumNArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + manager := api.NewRuntimeManager(*registryPath) + + if err := manager.ScanPackages(); err != nil { + return fmt.Errorf("failed to scan packages: %w", err) + } + + name := args[0] + version := "" + if len(args) > 1 { + version = args[1] + } + + // Find package + var pkg *api.PackageInfo + var err error + + if version != "" { + pkg, err = manager.GetPackage(name, version) + } else { + // Find latest version + packages := manager.ListPackages("") + for _, p := range packages { + if p.Name == name { + if pkg == nil || p.Version > pkg.Version { + pkg = p + } + } + } + if pkg == nil { + err = fmt.Errorf("package %s not found", name) + } + } + + if err != nil { + return err + } + + if *outputFormat == "json" { + return outputPackageInfoJSON(pkg) + } + + // Output package info in table format + fmt.Printf("Package Information\n") + fmt.Printf("==================\n") + fmt.Printf("Name: %s\n", pkg.DisplayName) + fmt.Printf("Internal Name: %s\n", pkg.Name) + fmt.Printf("Version: %s\n", pkg.Version) + fmt.Printf("Kind: %s\n", pkg.Kind) + fmt.Printf("Port: %d\n", pkg.Port) + fmt.Printf("Base Image: %s\n", pkg.BaseImage) + fmt.Printf("Dockerfile: %s\n", pkg.Dockerfile) + fmt.Printf("Project: %s\n", pkg.Project) + if pkg.Entrypoint != "" { + fmt.Printf("Entrypoint: %s\n", pkg.Entrypoint) + } + + return nil + }, + } + + return cmd +} diff --git a/tool/cmd/commands/list.go b/tool/cmd/commands/list.go new file mode 100644 index 00000000..b1de3eb2 --- /dev/null +++ b/tool/cmd/commands/list.go @@ -0,0 +1,47 @@ +package commands + +import ( + "fmt" + "strings" + + "github.com/labring-actions/devbox-runtime/tool/api" + "github.com/spf13/cobra" +) + +func NewListCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + cmd := &cobra.Command{ + Use: "list", + Short: "List all available runtime packages", + Long: "List all available runtime packages grouped by kind (framework, language, os, service)", + RunE: func(cmd *cobra.Command, args []string) error { + manager := api.NewRuntimeManager(*registryPath) + + if err := manager.ScanPackages(); err != nil { + return fmt.Errorf("failed to scan packages: %w", err) + } + + if *outputFormat == "json" { + // Convert map to slice for JSON output + var packages []*api.PackageInfo + for _, pkg := range manager.Packages { + packages = append(packages, pkg) + } + return outputPackagesJSON(packages) + } + + // Group packages by kind + kinds := []string{"framework", "language", "os", "service"} + for _, kind := range kinds { + packages := manager.ListPackages(kind) + if len(packages) > 0 { + fmt.Printf("\n=== %s Packages ===\n", strings.Title(kind)) + outputPackagesTable(packages) + } + } + + return nil + }, + } + + return cmd +} diff --git a/tool/cmd/commands/list_frameworks.go b/tool/cmd/commands/list_frameworks.go new file mode 100644 index 00000000..b2cd3328 --- /dev/null +++ b/tool/cmd/commands/list_frameworks.go @@ -0,0 +1,35 @@ +package commands + +import ( + "fmt" + + "github.com/labring-actions/devbox-runtime/tool/api" + "github.com/spf13/cobra" +) + +func NewListFrameworksCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + cmd := &cobra.Command{ + Use: "list-frameworks", + Short: "List all framework packages", + Long: "List all available framework packages", + RunE: func(cmd *cobra.Command, args []string) error { + manager := api.NewRuntimeManager(*registryPath) + + if err := manager.ScanPackages(); err != nil { + return fmt.Errorf("failed to scan packages: %w", err) + } + + packages := manager.ListPackages("framework") + + if *outputFormat == "json" { + return outputPackagesJSON(packages) + } + + fmt.Printf("=== Framework Packages ===\n") + outputPackagesTable(packages) + return nil + }, + } + + return cmd +} diff --git a/tool/cmd/commands/list_languages.go b/tool/cmd/commands/list_languages.go new file mode 100644 index 00000000..c3075aff --- /dev/null +++ b/tool/cmd/commands/list_languages.go @@ -0,0 +1,35 @@ +package commands + +import ( + "fmt" + + "github.com/labring-actions/devbox-runtime/tool/api" + "github.com/spf13/cobra" +) + +func NewListLanguagesCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + cmd := &cobra.Command{ + Use: "list-languages", + Short: "List all language packages", + Long: "List all available language packages", + RunE: func(cmd *cobra.Command, args []string) error { + manager := api.NewRuntimeManager(*registryPath) + + if err := manager.ScanPackages(); err != nil { + return fmt.Errorf("failed to scan packages: %w", err) + } + + packages := manager.ListPackages("language") + + if *outputFormat == "json" { + return outputPackagesJSON(packages) + } + + fmt.Printf("=== Language Packages ===\n") + outputPackagesTable(packages) + return nil + }, + } + + return cmd +} diff --git a/tool/cmd/commands/list_os.go b/tool/cmd/commands/list_os.go new file mode 100644 index 00000000..a28992b9 --- /dev/null +++ b/tool/cmd/commands/list_os.go @@ -0,0 +1,35 @@ +package commands + +import ( + "fmt" + + "github.com/labring-actions/devbox-runtime/tool/api" + "github.com/spf13/cobra" +) + +func NewListOSCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + cmd := &cobra.Command{ + Use: "list-os", + Short: "List all OS packages", + Long: "List all available operating system packages", + RunE: func(cmd *cobra.Command, args []string) error { + manager := api.NewRuntimeManager(*registryPath) + + if err := manager.ScanPackages(); err != nil { + return fmt.Errorf("failed to scan packages: %w", err) + } + + packages := manager.ListPackages("os") + + if *outputFormat == "json" { + return outputPackagesJSON(packages) + } + + fmt.Printf("=== OS Packages ===\n") + outputPackagesTable(packages) + return nil + }, + } + + return cmd +} diff --git a/tool/cmd/commands/list_services.go b/tool/cmd/commands/list_services.go new file mode 100644 index 00000000..f4e5c8eb --- /dev/null +++ b/tool/cmd/commands/list_services.go @@ -0,0 +1,35 @@ +package commands + +import ( + "fmt" + + "github.com/labring-actions/devbox-runtime/tool/api" + "github.com/spf13/cobra" +) + +func NewListServicesCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + cmd := &cobra.Command{ + Use: "list-services", + Short: "List all service packages", + Long: "List all available service packages", + RunE: func(cmd *cobra.Command, args []string) error { + manager := api.NewRuntimeManager(*registryPath) + + if err := manager.ScanPackages(); err != nil { + return fmt.Errorf("failed to scan packages: %w", err) + } + + packages := manager.ListPackages("service") + + if *outputFormat == "json" { + return outputPackagesJSON(packages) + } + + fmt.Printf("=== Service Packages ===\n") + outputPackagesTable(packages) + return nil + }, + } + + return cmd +} diff --git a/tool/cmd/commands/output.go b/tool/cmd/commands/output.go new file mode 100644 index 00000000..6398fc24 --- /dev/null +++ b/tool/cmd/commands/output.go @@ -0,0 +1,73 @@ +package commands + +import ( + "encoding/json" + "fmt" + "os" + "sort" + "text/tabwriter" + + "github.com/labring-actions/devbox-runtime/tool/api" +) + +func outputPackagesJSON(packages []*api.PackageInfo) error { + data, err := json.MarshalIndent(packages, "", " ") + if err != nil { + return fmt.Errorf("failed to marshal packages: %w", err) + } + fmt.Println(string(data)) + return nil +} + +func outputPackageInfoJSON(pkg *api.PackageInfo) error { + data, err := json.MarshalIndent(pkg, "", " ") + if err != nil { + return fmt.Errorf("failed to marshal package info: %w", err) + } + fmt.Println(string(data)) + return nil +} + +func outputDependenciesJSON(deps *api.PackageDependencies) error { + data, err := json.MarshalIndent(deps, "", " ") + if err != nil { + return fmt.Errorf("failed to marshal dependencies: %w", err) + } + fmt.Println(string(data)) + return nil +} + +func outputMetaJSON(meta *api.RuntimeMeta) error { + data, err := json.MarshalIndent(meta, "", " ") + if err != nil { + return fmt.Errorf("failed to marshal metadata: %w", err) + } + fmt.Println(string(data)) + return nil +} + +func outputPackagesTable(packages []*api.PackageInfo) error { + if len(packages) == 0 { + fmt.Println("No packages found") + return nil + } + + // Sort packages by name and version + sort.Slice(packages, func(i, j int) bool { + if packages[i].Name == packages[j].Name { + return packages[i].Version > packages[j].Version + } + return packages[i].Name < packages[j].Name + }) + + w := tabwriter.NewWriter(os.Stdout, 0, 0, 2, ' ', 0) + fmt.Fprintln(w, "Name\tVersion\tKind\tPort\tBase Image") + fmt.Fprintln(w, "----\t-------\t----\t----\t----------") + for _, pkg := range packages { + fmt.Fprintf(w, "%s\t%s\t%s\t%d\t%s\n", + pkg.DisplayName, pkg.Version, pkg.Kind, pkg.Port, pkg.BaseImage) + } + w.Flush() + + return nil +} diff --git a/tool/cmd/commands/scan.go b/tool/cmd/commands/scan.go new file mode 100644 index 00000000..e062576c --- /dev/null +++ b/tool/cmd/commands/scan.go @@ -0,0 +1,31 @@ +package commands + +import ( + "fmt" + + "github.com/labring-actions/devbox-runtime/tool/api" + "github.com/spf13/cobra" +) + +func NewScanCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + cmd := &cobra.Command{ + Use: "scan", + Short: "Scan filesystem for packages and update metadata", + Long: "Scan the filesystem for runtime packages and update metadata", + RunE: func(cmd *cobra.Command, args []string) error { + manager := api.NewRuntimeManager(*registryPath) + + if err := manager.ScanPackages(); err != nil { + return fmt.Errorf("failed to scan packages: %w", err) + } + + if !*quiet { + fmt.Printf("Scanned %d packages\n", len(manager.Packages)) + } + + return nil + }, + } + + return cmd +} diff --git a/tool/cmd/commands/search.go b/tool/cmd/commands/search.go new file mode 100644 index 00000000..a657f55d --- /dev/null +++ b/tool/cmd/commands/search.go @@ -0,0 +1,52 @@ +package commands + +import ( + "fmt" + "strings" + + "github.com/labring-actions/devbox-runtime/tool/api" + "github.com/spf13/cobra" +) + +func NewSearchCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + cmd := &cobra.Command{ + Use: "search ", + Short: "Search for packages by name or description", + Long: "Search for packages by name, display name, or kind", + Args: cobra.MinimumNArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + manager := api.NewRuntimeManager(*registryPath) + + if err := manager.ScanPackages(); err != nil { + return fmt.Errorf("failed to scan packages: %w", err) + } + + query := strings.ToLower(args[0]) + var results []*api.PackageInfo + + for _, pkg := range manager.Packages { + if strings.Contains(strings.ToLower(pkg.Name), query) || + strings.Contains(strings.ToLower(pkg.DisplayName), query) || + strings.Contains(strings.ToLower(pkg.Kind), query) { + results = append(results, pkg) + } + } + + if *outputFormat == "json" { + return outputPackagesJSON(results) + } + + if len(results) == 0 { + fmt.Printf("No packages found matching '%s'\n", query) + return nil + } + + fmt.Printf("Found %d packages matching '%s':\n", len(results), query) + outputPackagesTable(results) + + return nil + }, + } + + return cmd +} diff --git a/tool/cmd/commands/validate.go b/tool/cmd/commands/validate.go new file mode 100644 index 00000000..da63a1c1 --- /dev/null +++ b/tool/cmd/commands/validate.go @@ -0,0 +1,56 @@ +package commands + +import ( + "fmt" + + "github.com/labring-actions/devbox-runtime/tool/api" + "github.com/spf13/cobra" +) + +func NewValidateCommand(registryPath, outputFormat *string, quiet *bool) *cobra.Command { + cmd := &cobra.Command{ + Use: "validate", + Short: "Validate package configurations", + Long: "Validate all package configurations for required fields and consistency", + RunE: func(cmd *cobra.Command, args []string) error { + manager := api.NewRuntimeManager(*registryPath) + + if err := manager.ScanPackages(); err != nil { + return fmt.Errorf("failed to scan packages: %w", err) + } + + var errors []string + for _, pkg := range manager.Packages { + // Validate required fields + if pkg.Name == "" { + errors = append(errors, fmt.Sprintf("Package %s has empty name", pkg.Path)) + } + if pkg.Version == "" { + errors = append(errors, fmt.Sprintf("Package %s has empty version", pkg.Path)) + } + if pkg.Kind == "" { + errors = append(errors, fmt.Sprintf("Package %s has empty kind", pkg.Path)) + } + if pkg.Dockerfile == "" { + errors = append(errors, fmt.Sprintf("Package %s has empty dockerfile", pkg.Path)) + } + } + + if len(errors) > 0 { + fmt.Println("Validation errors found:") + for _, err := range errors { + fmt.Printf(" - %s\n", err) + } + return fmt.Errorf("validation failed with %d errors", len(errors)) + } + + if !*quiet { + fmt.Printf("All %d packages are valid\n", len(manager.Packages)) + } + + return nil + }, + } + + return cmd +} diff --git a/tool/cmd/main.go b/tool/cmd/main.go new file mode 100644 index 00000000..7108edd2 --- /dev/null +++ b/tool/cmd/main.go @@ -0,0 +1,55 @@ +package main + +import ( + "fmt" + "os" + + "github.com/labring-actions/devbox-runtime/tool/cmd/commands" + "github.com/spf13/cobra" +) + +const ( + Version = "1.0.0" +) + +var ( + registryPath string + outputFormat string + quiet bool +) + +func main() { + var rootCmd = &cobra.Command{ + Use: "runtimectl", + Short: "DevBox Runtime Manager - Manage runtime packages and their dependencies", + Long: `DevBox Runtime Manager - Manage runtime packages and their dependencies + +This tool helps manage runtime packages and their dependencies for DevBox. +It provides commands to list, analyze, and build runtime packages.`, + Version: Version, + } + + // Global flags + rootCmd.PersistentFlags().StringVarP(®istryPath, "dir", "d", ".", "Registry directory path") + rootCmd.PersistentFlags().StringVarP(&outputFormat, "output", "o", "table", "Output format (json, table)") + rootCmd.PersistentFlags().BoolVarP(&quiet, "quiet", "q", false, "Quiet mode, minimal output") + + // Add subcommands + rootCmd.AddCommand(commands.NewListCommand(®istryPath, &outputFormat, &quiet)) + rootCmd.AddCommand(commands.NewListFrameworksCommand(®istryPath, &outputFormat, &quiet)) + rootCmd.AddCommand(commands.NewListLanguagesCommand(®istryPath, &outputFormat, &quiet)) + rootCmd.AddCommand(commands.NewListOSCommand(®istryPath, &outputFormat, &quiet)) + rootCmd.AddCommand(commands.NewListServicesCommand(®istryPath, &outputFormat, &quiet)) + rootCmd.AddCommand(commands.NewInfoCommand(®istryPath, &outputFormat, &quiet)) + rootCmd.AddCommand(commands.NewDependenciesCommand(®istryPath, &outputFormat, &quiet)) + rootCmd.AddCommand(commands.NewScanCommand(®istryPath, &outputFormat, &quiet)) + rootCmd.AddCommand(commands.NewGenerateMetaCommand(®istryPath, &outputFormat, &quiet)) + rootCmd.AddCommand(commands.NewValidateCommand(®istryPath, &outputFormat, &quiet)) + rootCmd.AddCommand(commands.NewSearchCommand(®istryPath, &outputFormat, &quiet)) + rootCmd.AddCommand(commands.NewCICommand(®istryPath, &outputFormat, &quiet)) + + if err := rootCmd.Execute(); err != nil { + fmt.Fprintf(os.Stderr, "Error: %v\n", err) + os.Exit(1) + } +} diff --git a/tool/go.mod b/tool/go.mod new file mode 100644 index 00000000..a58a676d --- /dev/null +++ b/tool/go.mod @@ -0,0 +1,9 @@ +module github.com/labring-actions/devbox-runtime/tool + +go 1.21 + +require ( + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/spf13/cobra v1.10.1 // indirect + github.com/spf13/pflag v1.0.9 // indirect +) diff --git a/tool/go.sum b/tool/go.sum new file mode 100644 index 00000000..e6136803 --- /dev/null +++ b/tool/go.sum @@ -0,0 +1,10 @@ +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s= +github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0= +github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/tool/update_commands.sh b/tool/update_commands.sh new file mode 100644 index 00000000..ab9859ea --- /dev/null +++ b/tool/update_commands.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# Update all command files to use pointers +find cmd/commands -name "*.go" -not -name "output.go" -not -name "cn_modifications.go" | while read file; do + echo "Updating $file" + + # Update function signatures + sed -i '' 's/func New\([A-Za-z]*\)Command(registryPath, outputFormat string, quiet bool)/func New\1Command(registryPath, outputFormat *string, quiet *bool)/g' "$file" + + # Update variable references + sed -i '' 's/manager := api.NewRuntimeManager(registryPath)/manager := api.NewRuntimeManager(*registryPath)/g' "$file" + sed -i '' 's/if outputFormat == "json"/if *outputFormat == "json"/g' "$file" + sed -i '' 's/if !quiet/if !*quiet/g' "$file" +done + +echo "All command files updated!" diff --git a/yaml/cn/Framework/angular/v18/v18.yaml b/yaml/cn/Framework/angular/v18/v18.yaml deleted file mode 100644 index 0228b828..00000000 --- a/yaml/cn/Framework/angular/v18/v18.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: angular-v18-2024-12-27-0402 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: angular - config: - image: ghcr.io/labring-actions/devbox/angular-v18:4770dac - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 4200 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: angular v18 - version: "v18" - runtimeVersion: 2024-12-27-0402 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: angular -spec: - title: "Angular" - kind: Framework - description: angular diff --git a/yaml/cn/Framework/astro/4.10.0/4.10.0.yaml b/yaml/cn/Framework/astro/4.10.0/4.10.0.yaml deleted file mode 100644 index ba6d4f09..00000000 --- a/yaml/cn/Framework/astro/4.10.0/4.10.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: astro-4-10-0-2024-11-19-0839 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: astro - config: - image: ghcr.io/labring-actions/devbox/astro-4.10.0:22f026b - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 4321 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: astro 4.10.0 - version: "4.10.0" - runtimeVersion: 2024-11-19-0839 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: astro -spec: - title: "astro" - kind: Framework - description: astro diff --git a/yaml/cn/Framework/chi/v5.1.0/v5.1.0.yaml b/yaml/cn/Framework/chi/v5.1.0/v5.1.0.yaml deleted file mode 100644 index 3420337c..00000000 --- a/yaml/cn/Framework/chi/v5.1.0/v5.1.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: chi-v5-1-0-2024-11-13-0740 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: chi - config: - image: ghcr.io/labring-actions/devbox/chi-v5.1.0:a9e4136 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: chi v5.1.0 - version: "v5.1.0" - runtimeVersion: 2024-11-13-0740 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: chi -spec: - title: "chi" - kind: Framework - description: chi diff --git a/yaml/cn/Framework/django/4.2.16/4.2.16.yaml b/yaml/cn/Framework/django/4.2.16/4.2.16.yaml deleted file mode 100644 index 0884c75a..00000000 --- a/yaml/cn/Framework/django/4.2.16/4.2.16.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: django-4-2-16-2024-11-13-0740 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: django - config: - image: ghcr.io/labring-actions/devbox/django-4.2.16:a9e4136 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8000 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: django 4.2.16 - version: "4.2.16" - runtimeVersion: 2024-11-13-0740 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: django -spec: - title: "django" - kind: Framework - description: django diff --git a/yaml/cn/Framework/docusaurus/3.5.2/3.5.2.yaml b/yaml/cn/Framework/docusaurus/3.5.2/3.5.2.yaml deleted file mode 100644 index 18995731..00000000 --- a/yaml/cn/Framework/docusaurus/3.5.2/3.5.2.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: docusaurus-3-5-2-2024-11-19-0839 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: docusaurus - config: - image: ghcr.io/labring-actions/devbox/docusaurus-3.5.2:22f026b - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 3000 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: docusaurus 3.5.2 - version: "3.5.2" - runtimeVersion: 2024-11-19-0839 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: docusaurus -spec: - title: "docusaurus" - kind: Framework - description: docusaurus diff --git a/yaml/cn/Framework/echo/v4.12.0/v4.12.0.yaml b/yaml/cn/Framework/echo/v4.12.0/v4.12.0.yaml deleted file mode 100644 index ba544b46..00000000 --- a/yaml/cn/Framework/echo/v4.12.0/v4.12.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: echo-v4-12-0-2024-11-13-0740 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: echo - config: - image: ghcr.io/labring-actions/devbox/echo-v4.12.0:a9e4136 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: echo v4.12.0 - version: "v4.12.0" - runtimeVersion: 2024-11-13-0740 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: echo -spec: - title: "echo" - kind: Framework - description: echo diff --git a/yaml/cn/Framework/express.js/4.21.0/4.21.0.yaml b/yaml/cn/Framework/express.js/4.21.0/4.21.0.yaml deleted file mode 100644 index 024d33ee..00000000 --- a/yaml/cn/Framework/express.js/4.21.0/4.21.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: express.js-4-21-0-2024-11-19-0839 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: express.js - config: - image: ghcr.io/labring-actions/devbox/express.js-4.21.0:22f026b - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 3000 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: express.js 4.21.0 - version: "4.21.0" - runtimeVersion: 2024-11-19-0839 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: express.js -spec: - title: "express.js" - kind: Framework - description: express.js diff --git a/yaml/cn/Framework/flask/3.0.3/3.0.3.yaml b/yaml/cn/Framework/flask/3.0.3/3.0.3.yaml deleted file mode 100644 index 582e0832..00000000 --- a/yaml/cn/Framework/flask/3.0.3/3.0.3.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: flask-3-0-3-2024-11-13-0740 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: flask - config: - image: ghcr.io/labring-actions/devbox/flask-3.0.3:a9e4136 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: flask 3.0.3 - version: "3.0.3" - runtimeVersion: 2024-11-13-0740 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: flask -spec: - title: "flask" - kind: Framework - description: flask diff --git a/yaml/cn/Framework/gin/v1.10.0/v1.10.0.yaml b/yaml/cn/Framework/gin/v1.10.0/v1.10.0.yaml deleted file mode 100644 index b3641592..00000000 --- a/yaml/cn/Framework/gin/v1.10.0/v1.10.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: gin-v1-10-0-2024-12-30-0948 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: gin - config: - image: ghcr.io/labring-actions/devbox/gin-v1.10.0:5fc5ffc - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: gin v1.10.0 - version: "v1.10.0" - runtimeVersion: 2024-12-30-0948 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: gin -spec: - title: "Gin" - kind: Framework - description: gin diff --git a/yaml/cn/Framework/hexo/7.3.0/7.3.0.yaml b/yaml/cn/Framework/hexo/7.3.0/7.3.0.yaml deleted file mode 100644 index f5c2fa8c..00000000 --- a/yaml/cn/Framework/hexo/7.3.0/7.3.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: hexo-7-3-0-2024-11-19-0839 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: hexo - config: - image: ghcr.io/labring-actions/devbox/hexo-7.3.0:22f026b - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 4000 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: hexo 7.3.0 - version: "7.3.0" - runtimeVersion: 2024-11-19-0839 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: hexo -spec: - title: "hexo" - kind: Framework - description: hexo diff --git a/yaml/cn/Framework/hugo/v0.135.0/v0.135.0.yaml b/yaml/cn/Framework/hugo/v0.135.0/v0.135.0.yaml deleted file mode 100644 index fbe073dc..00000000 --- a/yaml/cn/Framework/hugo/v0.135.0/v0.135.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: hugo-v0-135-0-2024-11-13-0740 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: hugo - config: - image: ghcr.io/labring-actions/devbox/hugo-v0.135.0:a9e4136 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 1313 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: hugo v0.135.0 - version: "v0.135.0" - runtimeVersion: 2024-11-13-0740 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: hugo -spec: - title: "hugo" - kind: Framework - description: hugo diff --git a/yaml/cn/Framework/iris/v12.2.11/v12.2.11.yaml b/yaml/cn/Framework/iris/v12.2.11/v12.2.11.yaml deleted file mode 100644 index 5ac24831..00000000 --- a/yaml/cn/Framework/iris/v12.2.11/v12.2.11.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: iris-v12-2-11-2024-11-13-0740 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: iris - config: - image: ghcr.io/labring-actions/devbox/iris-v12.2.11:a9e4136 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: iris v12.2.11 - version: "v12.2.11" - runtimeVersion: 2024-11-13-0740 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: iris -spec: - title: "iris" - kind: Framework - description: iris diff --git a/yaml/cn/Framework/next.js/14.2.5/14.2.5.yaml b/yaml/cn/Framework/next.js/14.2.5/14.2.5.yaml deleted file mode 100644 index 1f5ff749..00000000 --- a/yaml/cn/Framework/next.js/14.2.5/14.2.5.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: next.js-14-2-5-2024-12-20-0305 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: next.js - config: - image: ghcr.io/labring-actions/devbox/next.js-14.2.5:4fa8443 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 3000 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: next.js 14.2.5 - version: "14.2.5" - runtimeVersion: 2024-12-20-0305 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: next.js -spec: - title: "Next.js" - kind: Framework - description: next.js diff --git a/yaml/cn/Framework/nginx/1.22.1/1.22.1.yaml b/yaml/cn/Framework/nginx/1.22.1/1.22.1.yaml deleted file mode 100644 index 102302bc..00000000 --- a/yaml/cn/Framework/nginx/1.22.1/1.22.1.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: nginx-1-22-1-2025-02-25-0350 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: nginx - config: - image: ghcr.io/labring-actions/devbox/nginx-1.22.1:7a1d9c3 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 80 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: nginx 1.22.1 - version: "1.22.1" - runtimeVersion: 2025-02-25-0350 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: nginx -spec: - title: "Nginx" - kind: Framework - description: nginx diff --git a/yaml/cn/Framework/nuxt3/v3.13/v3.13.yaml b/yaml/cn/Framework/nuxt3/v3.13/v3.13.yaml deleted file mode 100644 index c0f00c78..00000000 --- a/yaml/cn/Framework/nuxt3/v3.13/v3.13.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: nuxt3-v3-13-2024-12-20-0318 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: nuxt3 - config: - image: ghcr.io/labring-actions/devbox/nuxt3-v3.13:f378858 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 3000 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: nuxt3 v3.13 - version: "v3.13" - runtimeVersion: 2024-12-20-0318 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: nuxt3 -spec: - title: "Nuxt3" - kind: Framework - description: nuxt3 diff --git a/yaml/cn/Framework/pytorch/pytorch.yaml b/yaml/cn/Framework/pytorch/pytorch.yaml deleted file mode 100644 index 417dfeb9..00000000 --- a/yaml/cn/Framework/pytorch/pytorch.yaml +++ /dev/null @@ -1,41 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: pytorch-2024-12-10-0535 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: pytorch - category: - - gpu - config: - image: "crpi-0cfxxemn813jdhyg.cn-hangzhou.personal.cr.aliyuncs.com/cbluebird/pytorch:latest" - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: root - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: pytorch pytorch - version: "pytorch" - runtimeVersion: 2024-12-10-0535 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: pytorch -spec: - title: "pytorch" - kind: Framework - description: pytorch diff --git a/yaml/cn/Framework/quarkus/3.16.1/3.16.1.yaml b/yaml/cn/Framework/quarkus/3.16.1/3.16.1.yaml deleted file mode 100644 index 3e7d4773..00000000 --- a/yaml/cn/Framework/quarkus/3.16.1/3.16.1.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: quarkus-3-16-1-2024-11-13-0740 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: quarkus - config: - image: ghcr.io/labring-actions/devbox/quarkus-3.16.1:a9e4136 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: quarkus 3.16.1 - version: "3.16.1" - runtimeVersion: 2024-11-13-0740 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: quarkus -spec: - title: "quarkus" - kind: Framework - description: quarkus diff --git a/yaml/cn/Framework/quarkus/3.16.1/project/src/main/docker/docker.yaml b/yaml/cn/Framework/quarkus/3.16.1/project/src/main/docker/docker.yaml deleted file mode 100644 index fb34a913..00000000 --- a/yaml/cn/Framework/quarkus/3.16.1/project/src/main/docker/docker.yaml +++ /dev/null @@ -1,37 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: quarkus-docker-2024-11-01-0724 - namespace: devbox-system -spec: - classRef: quarkus - config: - image: ghcr.io/labring-actions/devbox/quarkus-docker:90b07c - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: quarkus docker - version: "docker" - runtimeVersion: 2024-11-01-0724 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: quarkus -spec: - title: "quarkus" - kind: Framework - description: quarkus diff --git a/yaml/cn/Framework/react/18.2.0/18.2.0.yaml b/yaml/cn/Framework/react/18.2.0/18.2.0.yaml deleted file mode 100644 index f8a7515a..00000000 --- a/yaml/cn/Framework/react/18.2.0/18.2.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: react-18-2-0-2024-12-27-0653 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: react - config: - image: ghcr.io/labring-actions/devbox/react-18.2.0:6c2c1cf - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 3000 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: react 18.2.0 - version: "18.2.0" - runtimeVersion: 2024-12-27-0653 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: react -spec: - title: "React" - kind: Framework - description: react diff --git a/yaml/cn/Framework/rocket/0.5.1/0.5.1.yaml b/yaml/cn/Framework/rocket/0.5.1/0.5.1.yaml deleted file mode 100644 index c0e856d8..00000000 --- a/yaml/cn/Framework/rocket/0.5.1/0.5.1.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: rocket-0-5-1-2024-11-13-0740 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: rocket - config: - image: ghcr.io/labring-actions/devbox/rocket-0.5.1:a9e4136 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8000 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: rocket 0.5.1 - version: "0.5.1" - runtimeVersion: 2024-11-13-0740 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: rocket -spec: - title: "rocket" - kind: Framework - description: rocket diff --git a/yaml/cn/Framework/sealaf/1.0.0/1.0.0.yaml b/yaml/cn/Framework/sealaf/1.0.0/1.0.0.yaml deleted file mode 100644 index fca0a78e..00000000 --- a/yaml/cn/Framework/sealaf/1.0.0/1.0.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: sealaf-1-0-0-2024-11-19-0839 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: sealaf - config: - image: ghcr.io/labring-actions/devbox/sealaf-1.0.0:22f026b - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 2342 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: sealaf 1.0.0 - version: "1.0.0" - runtimeVersion: 2024-11-19-0839 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: sealaf -spec: - title: "Laf" - kind: Framework - description: sealaf diff --git a/yaml/cn/Framework/spring-boot/3.3.2/3.3.2.yaml b/yaml/cn/Framework/spring-boot/3.3.2/3.3.2.yaml deleted file mode 100644 index 1746997d..00000000 --- a/yaml/cn/Framework/spring-boot/3.3.2/3.3.2.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: spring-boot-3-3-2-2024-11-13-0740 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: spring-boot - config: - image: ghcr.io/labring-actions/devbox/spring-boot-3.3.2:a9e4136 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: spring-boot 3.3.2 - version: "3.3.2" - runtimeVersion: 2024-11-13-0740 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: spring-boot -spec: - title: "Spring Boot" - kind: Framework - description: spring-boot diff --git a/yaml/cn/Framework/svelte/6.4.0/6.4.0.yaml b/yaml/cn/Framework/svelte/6.4.0/6.4.0.yaml deleted file mode 100644 index a365abd1..00000000 --- a/yaml/cn/Framework/svelte/6.4.0/6.4.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: svelte-6-4-0-2024-11-19-0839 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: svelte - config: - image: ghcr.io/labring-actions/devbox/svelte-6.4.0:22f026b - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 5173 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: svelte 6.4.0 - version: "6.4.0" - runtimeVersion: 2024-11-19-0839 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: svelte -spec: - title: "SvelteKit" - kind: Framework - description: svelte diff --git a/yaml/cn/Framework/umi/4.3.27/4.3.27.yaml b/yaml/cn/Framework/umi/4.3.27/4.3.27.yaml deleted file mode 100644 index 62a31e52..00000000 --- a/yaml/cn/Framework/umi/4.3.27/4.3.27.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: umi-4-3-27-2024-11-19-0839 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: umi - config: - image: ghcr.io/labring-actions/devbox/umi-4.3.27:22f026b - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8000 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: umi 4.3.27 - version: "4.3.27" - runtimeVersion: 2024-11-19-0839 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: umi -spec: - title: "UmiJS" - kind: Framework - description: umi diff --git a/yaml/cn/Framework/vert.x/4.5.10/4.5.10.yaml b/yaml/cn/Framework/vert.x/4.5.10/4.5.10.yaml deleted file mode 100644 index 02fdc42a..00000000 --- a/yaml/cn/Framework/vert.x/4.5.10/4.5.10.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: vert.x-4-5-10-2024-11-13-0740 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: vert.x - config: - image: ghcr.io/labring-actions/devbox/vert.x-4.5.10:a9e4136 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8888 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: vert.x 4.5.10 - version: "4.5.10" - runtimeVersion: 2024-11-13-0740 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: vert.x -spec: - title: "vert.x" - kind: Framework - description: vert.x diff --git a/yaml/cn/Framework/vitepress/1.4.0/1.4.0.yaml b/yaml/cn/Framework/vitepress/1.4.0/1.4.0.yaml deleted file mode 100644 index 2a183cf5..00000000 --- a/yaml/cn/Framework/vitepress/1.4.0/1.4.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: vitepress-1-4-0-2024-11-19-0839 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: vitepress - config: - image: ghcr.io/labring-actions/devbox/vitepress-1.4.0:22f026b - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 4173 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: vitepress 1.4.0 - version: "1.4.0" - runtimeVersion: 2024-11-19-0839 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: vitepress -spec: - title: "VitePress" - kind: Framework - description: vitepress diff --git a/yaml/cn/Framework/vue/v3.4.29/v3.4.29.yaml b/yaml/cn/Framework/vue/v3.4.29/v3.4.29.yaml deleted file mode 100644 index 86c8a901..00000000 --- a/yaml/cn/Framework/vue/v3.4.29/v3.4.29.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: vue-v3-4-29-2024-12-19-0835 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: vue - config: - image: ghcr.io/labring-actions/devbox/vue-v3.4.29:87fd59a - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 3000 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: vue v3.4.29 - version: "v3.4.29" - runtimeVersion: 2024-12-19-0835 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: vue -spec: - title: "Vue.js" - kind: Framework - description: vue diff --git a/yaml/cn/Language/c/gcc-12.2.0/gcc-12.2.0.yaml b/yaml/cn/Language/c/gcc-12.2.0/gcc-12.2.0.yaml deleted file mode 100644 index 8341f22d..00000000 --- a/yaml/cn/Language/c/gcc-12.2.0/gcc-12.2.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: c-gcc-12-2-0-2024-11-12-0651 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: c - config: - image: ghcr.io/labring-actions/devbox/c-gcc-12.2.0:13aacd8 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: c gcc-12.2.0 - version: "gcc-12.2.0" - runtimeVersion: 2024-11-12-0651 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: c -spec: - title: "c" - kind: Language - description: c diff --git a/yaml/cn/Language/cpp/gcc-12.2.0/gcc-12.2.0.yaml b/yaml/cn/Language/cpp/gcc-12.2.0/gcc-12.2.0.yaml deleted file mode 100644 index b0f1c368..00000000 --- a/yaml/cn/Language/cpp/gcc-12.2.0/gcc-12.2.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: cpp-gcc-12-2-0-2024-11-12-0651 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: cpp - config: - image: ghcr.io/labring-actions/devbox/cpp-gcc-12.2.0:13aacd8 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: cpp gcc-12.2.0 - version: "gcc-12.2.0" - runtimeVersion: 2024-11-12-0651 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: cpp -spec: - title: "C++" - kind: Language - description: cpp diff --git a/yaml/cn/Language/go/1.22.5/1.22.5.yaml b/yaml/cn/Language/go/1.22.5/1.22.5.yaml deleted file mode 100644 index 3140e202..00000000 --- a/yaml/cn/Language/go/1.22.5/1.22.5.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: go-1-22-5-2024-11-12-0651 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: go - config: - image: ghcr.io/labring-actions/devbox/go-1.22.5:13aacd8 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: go 1.22.5 - version: "1.22.5" - runtimeVersion: 2024-11-12-0651 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: go -spec: - title: "go" - kind: Language - description: go diff --git a/yaml/cn/Language/go/1.23.0/1.23.0.yaml b/yaml/cn/Language/go/1.23.0/1.23.0.yaml deleted file mode 100644 index 0643a3ed..00000000 --- a/yaml/cn/Language/go/1.23.0/1.23.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: go-1-23-0-2024-11-12-0651 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: go - config: - image: ghcr.io/labring-actions/devbox/go-1.23.0:13aacd8 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: go 1.23.0 - version: "1.23.0" - runtimeVersion: 2024-11-12-0651 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: go -spec: - title: "go" - kind: Language - description: go diff --git a/yaml/cn/Language/java/openjdk17/openjdk17.yaml b/yaml/cn/Language/java/openjdk17/openjdk17.yaml deleted file mode 100644 index 387ff27e..00000000 --- a/yaml/cn/Language/java/openjdk17/openjdk17.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: java-openjdk17-2024-11-12-0651 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: java - config: - image: ghcr.io/labring-actions/devbox/java-openjdk17:13aacd8 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: java openjdk17 - version: "openjdk17" - runtimeVersion: 2024-11-12-0651 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: java -spec: - title: "java" - kind: Language - description: java diff --git a/yaml/cn/Language/net/8.0/8.0.yaml b/yaml/cn/Language/net/8.0/8.0.yaml deleted file mode 100644 index 4e663f62..00000000 --- a/yaml/cn/Language/net/8.0/8.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: net-8-0-2024-11-12-0651 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: net - config: - image: ghcr.io/labring-actions/devbox/net-8.0:13aacd8 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: net 8.0 - version: "8.0" - runtimeVersion: 2024-11-12-0651 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: net -spec: - title: ".Net" - kind: Language - description: net diff --git a/yaml/cn/Language/node.js/18/18.yaml b/yaml/cn/Language/node.js/18/18.yaml deleted file mode 100644 index b18299e5..00000000 --- a/yaml/cn/Language/node.js/18/18.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: node.js-18-2024-11-19-0747 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: node.js - config: - image: ghcr.io/labring-actions/devbox/node.js-18:219d11f - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: node.js 18 - version: "18" - runtimeVersion: 2024-11-19-0747 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: node.js -spec: - title: "node.js" - kind: Language - description: node.js diff --git a/yaml/cn/Language/node.js/20/20.yaml b/yaml/cn/Language/node.js/20/20.yaml deleted file mode 100644 index 1cc1f350..00000000 --- a/yaml/cn/Language/node.js/20/20.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: node.js-20-2024-11-19-0747 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: node.js - config: - image: ghcr.io/labring-actions/devbox/node.js-20:219d11f - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: node.js 20 - version: "20" - runtimeVersion: 2024-11-19-0747 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: node.js -spec: - title: "node.js" - kind: Language - description: node.js diff --git a/yaml/cn/Language/node.js/22/22.yaml b/yaml/cn/Language/node.js/22/22.yaml deleted file mode 100644 index dee30ce5..00000000 --- a/yaml/cn/Language/node.js/22/22.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: node.js-22-2024-11-19-0747 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "true" -spec: - classRef: node.js - config: - image: ghcr.io/labring-actions/devbox/node.js-22:219d11f - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: node.js 22 - version: "22" - runtimeVersion: 2024-11-19-0747 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: node.js -spec: - title: "node.js" - kind: Language - description: node.js diff --git a/yaml/cn/Language/php/7.4/7.4.yaml b/yaml/cn/Language/php/7.4/7.4.yaml deleted file mode 100644 index c10b5d3c..00000000 --- a/yaml/cn/Language/php/7.4/7.4.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: php-7-4-2024-11-13-0347 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: php - config: - image: ghcr.io/labring-actions/devbox/php-7.4:2480852 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: php 7.4 - version: "7.4" - runtimeVersion: 2024-11-13-0347 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: php -spec: - title: "PHP" - kind: Language - description: php diff --git a/yaml/cn/Language/php/8.2.20/8.2.20.yaml b/yaml/cn/Language/php/8.2.20/8.2.20.yaml deleted file mode 100644 index 8cc0771c..00000000 --- a/yaml/cn/Language/php/8.2.20/8.2.20.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: php-8-2-20-2024-11-13-0347 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "true" -spec: - classRef: php - config: - image: ghcr.io/labring-actions/devbox/php-8.2.20:2480852 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: php 8.2.20 - version: "8.2.20" - runtimeVersion: 2024-11-13-0347 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: php -spec: - title: "PHP" - kind: Language - description: php diff --git a/yaml/cn/Language/python/3.10/3.10.yaml b/yaml/cn/Language/python/3.10/3.10.yaml deleted file mode 100644 index 8b70a3a8..00000000 --- a/yaml/cn/Language/python/3.10/3.10.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: python-3-10-2024-12-27-0245 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: python - config: - image: ghcr.io/labring-actions/devbox/python-3.10:067ba72 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: python 3.10 - version: "3.10" - runtimeVersion: 2024-12-27-0245 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: python -spec: - title: "Python" - kind: Language - description: python diff --git a/yaml/cn/Language/python/3.11/3.11.yaml b/yaml/cn/Language/python/3.11/3.11.yaml deleted file mode 100644 index 285282e0..00000000 --- a/yaml/cn/Language/python/3.11/3.11.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: python-3-11-2024-12-27-0245 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: python - config: - image: ghcr.io/labring-actions/devbox/python-3.11:067ba72 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: python 3.11 - version: "3.11" - runtimeVersion: 2024-12-27-0245 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: python -spec: - title: "Python" - kind: Language - description: python diff --git a/yaml/cn/Language/python/3.12/3.12.yaml b/yaml/cn/Language/python/3.12/3.12.yaml deleted file mode 100644 index 425bea6d..00000000 --- a/yaml/cn/Language/python/3.12/3.12.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: python-3-12-2024-12-27-0245 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: python - config: - image: ghcr.io/labring-actions/devbox/python-3.12:067ba72 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: python 3.12 - version: "3.12" - runtimeVersion: 2024-12-27-0245 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: python -spec: - title: "Python" - kind: Language - description: python diff --git a/yaml/cn/Language/rust/1.81.0/1.81.0.yaml b/yaml/cn/Language/rust/1.81.0/1.81.0.yaml deleted file mode 100644 index 897298f0..00000000 --- a/yaml/cn/Language/rust/1.81.0/1.81.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: rust-1-81-0-2024-11-12-0651 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: rust - config: - image: ghcr.io/labring-actions/devbox/rust-1.81.0:13aacd - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: rust 1.81.0 - version: "1.81.0" - runtimeVersion: 2024-11-12-0651 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: rust -spec: - title: "rust" - kind: Language - description: rust diff --git a/yaml/cn/OS/debian-ssh/12.6/12.6.yaml b/yaml/cn/OS/debian-ssh/12.6/12.6.yaml deleted file mode 100644 index d480ddc8..00000000 --- a/yaml/cn/OS/debian-ssh/12.6/12.6.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: debian-ssh-12-6-2024-11-11-0803 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: debian-ssh - config: - image: ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: debian-ssh 12.6 - version: "12.6" - runtimeVersion: 2024-11-11-0803 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: debian-ssh -spec: - title: "debian" - kind: OS - description: debian-ssh diff --git a/yaml/cn/OS/ubuntu-cuda/24.04/24.04.yaml b/yaml/cn/OS/ubuntu-cuda/24.04/24.04.yaml deleted file mode 100644 index 63765510..00000000 --- a/yaml/cn/OS/ubuntu-cuda/24.04/24.04.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: ubuntu-cuda-24-04-2024-12-25-0918 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: ubuntu-cuda - config: - image: ghcr.io/labring-actions/devbox/ubuntu-cuda-24.04:e730999 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: ubuntu-cuda 24.04 - version: "24.04" - runtimeVersion: 2024-12-25-0918 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: ubuntu-cuda -spec: - title: "Ubuntu-cuda" - kind: OS - description: ubuntu-cuda diff --git a/yaml/cn/OS/ubuntu/24.04/24.04.yaml b/yaml/cn/OS/ubuntu/24.04/24.04.yaml deleted file mode 100644 index ab7b4d55..00000000 --- a/yaml/cn/OS/ubuntu/24.04/24.04.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: ubuntu-24-04-2024-12-11-0729 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: ubuntu - config: - image: ghcr.io/labring-actions/devbox/ubuntu-24.04:a5f75b3 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: ubuntu 24.04 - version: "24.04" - runtimeVersion: 2024-12-11-0729 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: ubuntu -spec: - title: "ubuntu" - kind: OS - description: ubuntu diff --git a/yaml/en/Framework/angular/v18/v18.yaml b/yaml/en/Framework/angular/v18/v18.yaml deleted file mode 100644 index 5b746eb4..00000000 --- a/yaml/en/Framework/angular/v18/v18.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: angular-v18-2024-12-27-0402 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: angular - config: - image: ghcr.io/labring-actions/devbox/angular-v18:4770da - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 4200 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: angular v18 - version: "v18" - runtimeVersion: 2024-12-27-0402 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: angular -spec: - title: "Angular" - kind: Framework - description: angular diff --git a/yaml/en/Framework/astro/4.10.0/4.10.0.yaml b/yaml/en/Framework/astro/4.10.0/4.10.0.yaml deleted file mode 100644 index 9f86b2b4..00000000 --- a/yaml/en/Framework/astro/4.10.0/4.10.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: astro-4-10-0-2024-11-19-0839 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: astro - config: - image: ghcr.io/labring-actions/devbox/astro-4.10.0:22f026 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 4321 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: astro 4.10.0 - version: "4.10.0" - runtimeVersion: 2024-11-19-0839 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: astro -spec: - title: "astro" - kind: Framework - description: astro diff --git a/yaml/en/Framework/chi/v5.1.0/v5.1.0.yaml b/yaml/en/Framework/chi/v5.1.0/v5.1.0.yaml deleted file mode 100644 index 7a5abd90..00000000 --- a/yaml/en/Framework/chi/v5.1.0/v5.1.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: chi-v5-1-0-2024-11-13-0740 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: chi - config: - image: ghcr.io/labring-actions/devbox/chi-v5.1.0:a9e413 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: chi v5.1.0 - version: "v5.1.0" - runtimeVersion: 2024-11-13-0740 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: chi -spec: - title: "chi" - kind: Framework - description: chi diff --git a/yaml/en/Framework/django/4.2.16/4.2.16.yaml b/yaml/en/Framework/django/4.2.16/4.2.16.yaml deleted file mode 100644 index 54e2d7fc..00000000 --- a/yaml/en/Framework/django/4.2.16/4.2.16.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: django-4-2-16-2024-11-13-0740 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: django - config: - image: ghcr.io/labring-actions/devbox/django-4.2.16:a9e413 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8000 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: django 4.2.16 - version: "4.2.16" - runtimeVersion: 2024-11-13-0740 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: django -spec: - title: "django" - kind: Framework - description: django diff --git a/yaml/en/Framework/docusaurus/3.5.2/3.5.2.yaml b/yaml/en/Framework/docusaurus/3.5.2/3.5.2.yaml deleted file mode 100644 index 2e506e3d..00000000 --- a/yaml/en/Framework/docusaurus/3.5.2/3.5.2.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: docusaurus-3-5-2-2024-11-19-0839 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: docusaurus - config: - image: ghcr.io/labring-actions/devbox/docusaurus-3.5.2:22f026 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 3000 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: docusaurus 3.5.2 - version: "3.5.2" - runtimeVersion: 2024-11-19-0839 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: docusaurus -spec: - title: "docusaurus" - kind: Framework - description: docusaurus diff --git a/yaml/en/Framework/echo/v4.12.0/v4.12.0.yaml b/yaml/en/Framework/echo/v4.12.0/v4.12.0.yaml deleted file mode 100644 index 67ddad12..00000000 --- a/yaml/en/Framework/echo/v4.12.0/v4.12.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: echo-v4-12-0-2024-11-13-0740 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: echo - config: - image: ghcr.io/labring-actions/devbox/echo-v4.12.0:a9e413 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: echo v4.12.0 - version: "v4.12.0" - runtimeVersion: 2024-11-13-0740 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: echo -spec: - title: "echo" - kind: Framework - description: echo diff --git a/yaml/en/Framework/express.js/4.21.0/4.21.0.yaml b/yaml/en/Framework/express.js/4.21.0/4.21.0.yaml deleted file mode 100644 index 54909c1c..00000000 --- a/yaml/en/Framework/express.js/4.21.0/4.21.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: express.js-4-21-0-2024-11-19-0839 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: express.js - config: - image: ghcr.io/labring-actions/devbox/express.js-4.21.0:22f026 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 3000 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: express.js 4.21.0 - version: "4.21.0" - runtimeVersion: 2024-11-19-0839 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: express.js -spec: - title: "express.js" - kind: Framework - description: express.js diff --git a/yaml/en/Framework/flask/3.0.3/3.0.3.yaml b/yaml/en/Framework/flask/3.0.3/3.0.3.yaml deleted file mode 100644 index c1981853..00000000 --- a/yaml/en/Framework/flask/3.0.3/3.0.3.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: flask-3-0-3-2024-11-13-0740 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: flask - config: - image: ghcr.io/labring-actions/devbox/flask-3.0.3:a9e413 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: flask 3.0.3 - version: "3.0.3" - runtimeVersion: 2024-11-13-0740 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: flask -spec: - title: "flask" - kind: Framework - description: flask diff --git a/yaml/en/Framework/gin/v1.10.0/v1.10.0.yaml b/yaml/en/Framework/gin/v1.10.0/v1.10.0.yaml deleted file mode 100644 index 1a5486f1..00000000 --- a/yaml/en/Framework/gin/v1.10.0/v1.10.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: gin-v1-10-0-2024-12-30-0948 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: gin - config: - image: ghcr.io/labring-actions/devbox/gin-v1.10.0:5fc5ff - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: gin v1.10.0 - version: "v1.10.0" - runtimeVersion: 2024-12-30-0948 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: gin -spec: - title: "Gin" - kind: Framework - description: gin diff --git a/yaml/en/Framework/hexo/7.3.0/7.3.0.yaml b/yaml/en/Framework/hexo/7.3.0/7.3.0.yaml deleted file mode 100644 index 6fac38a4..00000000 --- a/yaml/en/Framework/hexo/7.3.0/7.3.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: hexo-7-3-0-2024-11-19-0839 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: hexo - config: - image: ghcr.io/labring-actions/devbox/hexo-7.3.0:22f026 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 4000 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: hexo 7.3.0 - version: "7.3.0" - runtimeVersion: 2024-11-19-0839 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: hexo -spec: - title: "hexo" - kind: Framework - description: hexo diff --git a/yaml/en/Framework/hugo/v0.135.0/v0.135.0.yaml b/yaml/en/Framework/hugo/v0.135.0/v0.135.0.yaml deleted file mode 100644 index f1a4f450..00000000 --- a/yaml/en/Framework/hugo/v0.135.0/v0.135.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: hugo-v0-135-0-2024-11-13-0740 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: hugo - config: - image: ghcr.io/labring-actions/devbox/hugo-v0.135.0:a9e413 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 1313 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: hugo v0.135.0 - version: "v0.135.0" - runtimeVersion: 2024-11-13-0740 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: hugo -spec: - title: "hugo" - kind: Framework - description: hugo diff --git a/yaml/en/Framework/iris/v12.2.11/v12.2.11.yaml b/yaml/en/Framework/iris/v12.2.11/v12.2.11.yaml deleted file mode 100644 index a52e205f..00000000 --- a/yaml/en/Framework/iris/v12.2.11/v12.2.11.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: iris-v12-2-11-2024-11-13-0740 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: iris - config: - image: ghcr.io/labring-actions/devbox/iris-v12.2.11:a9e413 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: iris v12.2.11 - version: "v12.2.11" - runtimeVersion: 2024-11-13-0740 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: iris -spec: - title: "iris" - kind: Framework - description: iris diff --git a/yaml/en/Framework/next.js/14.2.5/14.2.5.yaml b/yaml/en/Framework/next.js/14.2.5/14.2.5.yaml deleted file mode 100644 index 9f4166f0..00000000 --- a/yaml/en/Framework/next.js/14.2.5/14.2.5.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: next.js-14-2-5-2024-12-20-0305 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: next.js - config: - image: ghcr.io/labring-actions/devbox/next.js-14.2.5:4fa844 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 3000 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: next.js 14.2.5 - version: "14.2.5" - runtimeVersion: 2024-12-20-0305 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: next.js -spec: - title: "Next.js" - kind: Framework - description: next.js diff --git a/yaml/en/Framework/nginx/1.22.1/1.22.1.yaml b/yaml/en/Framework/nginx/1.22.1/1.22.1.yaml deleted file mode 100644 index f13d96bd..00000000 --- a/yaml/en/Framework/nginx/1.22.1/1.22.1.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: nginx-1-22-1-2025-02-25-0350 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: nginx - config: - image: ghcr.io/labring-actions/devbox/nginx-1.22.1:7a1d9c - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 80 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: nginx 1.22.1 - version: "1.22.1" - runtimeVersion: 2025-02-25-0350 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: nginx -spec: - title: "Nginx" - kind: Framework - description: nginx diff --git a/yaml/en/Framework/nuxt/v3.13/v3.13.yaml b/yaml/en/Framework/nuxt/v3.13/v3.13.yaml deleted file mode 100644 index 630951f6..00000000 --- a/yaml/en/Framework/nuxt/v3.13/v3.13.yaml +++ /dev/null @@ -1,35 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: nuxt-v3-13 - namespace: devbox-system -spec: - classRef: nuxt - config: - image: ghcr.io/labring-actions/devbox/nuxt-v3.13:6f555b - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 3000 - name: devbox-app-port - protocol: TCP - user: sealos - workingDir: /home/sealos/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/sealos/project/entrypoint.sh - description: nuxt v3.13 - version: "v3.13" ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: nuxt -spec: - title: "nuxt" - kind: Framework - description: nuxt diff --git a/yaml/en/Framework/nuxt3/v3.13/v3.13.yaml b/yaml/en/Framework/nuxt3/v3.13/v3.13.yaml deleted file mode 100644 index e3a3897c..00000000 --- a/yaml/en/Framework/nuxt3/v3.13/v3.13.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: nuxt3-v3-13-2024-12-20-0318 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: nuxt3 - config: - image: ghcr.io/labring-actions/devbox/nuxt3-v3.13:f37885 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 3000 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: nuxt3 v3.13 - version: "v3.13" - runtimeVersion: 2024-12-20-0318 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: nuxt3 -spec: - title: "Nuxt3" - kind: Framework - description: nuxt3 diff --git a/yaml/en/Framework/pytorch/pytorch.yaml b/yaml/en/Framework/pytorch/pytorch.yaml deleted file mode 100644 index 6454df3c..00000000 --- a/yaml/en/Framework/pytorch/pytorch.yaml +++ /dev/null @@ -1,41 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: pytorch-2024-12-10-0535 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: pytorch - category: - - gpu - config: - image: crpi-0cfxxemn813jdhyg.cn-hangzhou.personal.cr.aliyuncs.com/cbluebird/pytorch:latest - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: root - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: pytorch pytorch - version: "pytorch" - runtimeVersion: 2024-12-10-0535 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: pytorch -spec: - title: "pytorch" - kind: Framework - description: pytorch diff --git a/yaml/en/Framework/quarkus/3.16.1/3.16.1.yaml b/yaml/en/Framework/quarkus/3.16.1/3.16.1.yaml deleted file mode 100644 index a3976321..00000000 --- a/yaml/en/Framework/quarkus/3.16.1/3.16.1.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: quarkus-3-16-1-2024-11-13-0740 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: quarkus - config: - image: ghcr.io/labring-actions/devbox/quarkus-3.16.1:a9e413 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: quarkus 3.16.1 - version: "3.16.1" - runtimeVersion: 2024-11-13-0740 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: quarkus -spec: - title: "quarkus" - kind: Framework - description: quarkus diff --git a/yaml/en/Framework/quarkus/3.16.1/project/src/main/docker/docker.yaml b/yaml/en/Framework/quarkus/3.16.1/project/src/main/docker/docker.yaml deleted file mode 100644 index fb34a913..00000000 --- a/yaml/en/Framework/quarkus/3.16.1/project/src/main/docker/docker.yaml +++ /dev/null @@ -1,37 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: quarkus-docker-2024-11-01-0724 - namespace: devbox-system -spec: - classRef: quarkus - config: - image: ghcr.io/labring-actions/devbox/quarkus-docker:90b07c - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: quarkus docker - version: "docker" - runtimeVersion: 2024-11-01-0724 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: quarkus -spec: - title: "quarkus" - kind: Framework - description: quarkus diff --git a/yaml/en/Framework/react/18.2.0/18.2.0.yaml b/yaml/en/Framework/react/18.2.0/18.2.0.yaml deleted file mode 100644 index 9f7d397f..00000000 --- a/yaml/en/Framework/react/18.2.0/18.2.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: react-18-2-0-2024-12-27-0653 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: react - config: - image: ghcr.io/labring-actions/devbox/react-18.2.0:6c2c1c - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 3000 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: react 18.2.0 - version: "18.2.0" - runtimeVersion: 2024-12-27-0653 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: react -spec: - title: "React" - kind: Framework - description: react diff --git a/yaml/en/Framework/rocket/0.5.1/0.5.1.yaml b/yaml/en/Framework/rocket/0.5.1/0.5.1.yaml deleted file mode 100644 index 971375e8..00000000 --- a/yaml/en/Framework/rocket/0.5.1/0.5.1.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: rocket-0-5-1-2024-11-13-0740 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: rocket - config: - image: ghcr.io/labring-actions/devbox/rocket-0.5.1:a9e413 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8000 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: rocket 0.5.1 - version: "0.5.1" - runtimeVersion: 2024-11-13-0740 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: rocket -spec: - title: "rocket" - kind: Framework - description: rocket diff --git a/yaml/en/Framework/sealaf/1.0.0/1.0.0.yaml b/yaml/en/Framework/sealaf/1.0.0/1.0.0.yaml deleted file mode 100644 index 62e6944f..00000000 --- a/yaml/en/Framework/sealaf/1.0.0/1.0.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: sealaf-1-0-0-2024-11-19-0839 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: sealaf - config: - image: ghcr.io/labring-actions/devbox/sealaf-1.0.0:22f026 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 2342 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: sealaf 1.0.0 - version: "1.0.0" - runtimeVersion: 2024-11-19-0839 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: sealaf -spec: - title: "Laf" - kind: Framework - description: sealaf diff --git a/yaml/en/Framework/spring-boot/3.3.2/3.3.2.yaml b/yaml/en/Framework/spring-boot/3.3.2/3.3.2.yaml deleted file mode 100644 index e452bc6a..00000000 --- a/yaml/en/Framework/spring-boot/3.3.2/3.3.2.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: spring-boot-3-3-2-2024-11-13-0740 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: spring-boot - config: - image: ghcr.io/labring-actions/devbox/spring-boot-3.3.2:a9e413 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: spring-boot 3.3.2 - version: "3.3.2" - runtimeVersion: 2024-11-13-0740 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: spring-boot -spec: - title: "Spring Boot" - kind: Framework - description: spring-boot diff --git a/yaml/en/Framework/svelte/6.4.0/6.4.0.yaml b/yaml/en/Framework/svelte/6.4.0/6.4.0.yaml deleted file mode 100644 index 715998c8..00000000 --- a/yaml/en/Framework/svelte/6.4.0/6.4.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: svelte-6-4-0-2024-11-19-0839 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: svelte - config: - image: ghcr.io/labring-actions/devbox/svelte-6.4.0:22f026 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 5173 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: svelte 6.4.0 - version: "6.4.0" - runtimeVersion: 2024-11-19-0839 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: svelte -spec: - title: "SvelteKit" - kind: Framework - description: svelte diff --git a/yaml/en/Framework/umi/4.3.27/4.3.27.yaml b/yaml/en/Framework/umi/4.3.27/4.3.27.yaml deleted file mode 100644 index 73b40474..00000000 --- a/yaml/en/Framework/umi/4.3.27/4.3.27.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: umi-4-3-27-2024-11-19-0839 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: umi - config: - image: ghcr.io/labring-actions/devbox/umi-4.3.27:22f026 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8000 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: umi 4.3.27 - version: "4.3.27" - runtimeVersion: 2024-11-19-0839 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: umi -spec: - title: "UmiJS" - kind: Framework - description: umi diff --git a/yaml/en/Framework/vert.x/4.5.10/4.5.10.yaml b/yaml/en/Framework/vert.x/4.5.10/4.5.10.yaml deleted file mode 100644 index a767e09c..00000000 --- a/yaml/en/Framework/vert.x/4.5.10/4.5.10.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: vert.x-4-5-10-2024-11-13-0740 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: vert.x - config: - image: ghcr.io/labring-actions/devbox/vert.x-4.5.10:a9e413 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8888 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: vert.x 4.5.10 - version: "4.5.10" - runtimeVersion: 2024-11-13-0740 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: vert.x -spec: - title: "vert.x" - kind: Framework - description: vert.x diff --git a/yaml/en/Framework/vitepress/1.4.0/1.4.0.yaml b/yaml/en/Framework/vitepress/1.4.0/1.4.0.yaml deleted file mode 100644 index be20502a..00000000 --- a/yaml/en/Framework/vitepress/1.4.0/1.4.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: vitepress-1-4-0-2024-11-19-0839 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: vitepress - config: - image: ghcr.io/labring-actions/devbox/vitepress-1.4.0:22f026 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 4173 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: vitepress 1.4.0 - version: "1.4.0" - runtimeVersion: 2024-11-19-0839 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: vitepress -spec: - title: "VitePress" - kind: Framework - description: vitepress diff --git a/yaml/en/Framework/vue/v3.4.29/v3.4.29.yaml b/yaml/en/Framework/vue/v3.4.29/v3.4.29.yaml deleted file mode 100644 index 7467f145..00000000 --- a/yaml/en/Framework/vue/v3.4.29/v3.4.29.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: vue-v3-4-29-2024-12-19-0835 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: vue - config: - image: ghcr.io/labring-actions/devbox/vue-v3.4.29:87fd59 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 3000 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: vue v3.4.29 - version: "v3.4.29" - runtimeVersion: 2024-12-19-0835 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: vue -spec: - title: "Vue.js" - kind: Framework - description: vue diff --git a/yaml/en/Language/c/gcc-12.2.0/gcc-12.2.0.yaml b/yaml/en/Language/c/gcc-12.2.0/gcc-12.2.0.yaml deleted file mode 100644 index 10e41da3..00000000 --- a/yaml/en/Language/c/gcc-12.2.0/gcc-12.2.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: c-gcc-12-2-0-2024-11-12-0651 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: c - config: - image: ghcr.io/labring-actions/devbox/c-gcc-12.2.0:13aacd - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: c gcc-12.2.0 - version: "gcc-12.2.0" - runtimeVersion: 2024-11-12-0651 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: c -spec: - title: "c" - kind: Language - description: c diff --git a/yaml/en/Language/cpp/gcc-12.2.0/gcc-12.2.0.yaml b/yaml/en/Language/cpp/gcc-12.2.0/gcc-12.2.0.yaml deleted file mode 100644 index d62441e9..00000000 --- a/yaml/en/Language/cpp/gcc-12.2.0/gcc-12.2.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: cpp-gcc-12-2-0-2024-11-12-0651 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: cpp - config: - image: ghcr.io/labring-actions/devbox/cpp-gcc-12.2.0:13aacd - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: cpp gcc-12.2.0 - version: "gcc-12.2.0" - runtimeVersion: 2024-11-12-0651 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: cpp -spec: - title: "C++" - kind: Language - description: cpp diff --git a/yaml/en/Language/go/1.22.5/1.22.5.yaml b/yaml/en/Language/go/1.22.5/1.22.5.yaml deleted file mode 100644 index 3e84e964..00000000 --- a/yaml/en/Language/go/1.22.5/1.22.5.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: go-1-22-5-2024-11-12-0651 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: go - config: - image: ghcr.io/labring-actions/devbox/go-1.22.5:13aacd - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: go 1.22.5 - version: "1.22.5" - runtimeVersion: 2024-11-12-0651 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: go -spec: - title: "go" - kind: Language - description: go diff --git a/yaml/en/Language/go/1.23.0/1.23.0.yaml b/yaml/en/Language/go/1.23.0/1.23.0.yaml deleted file mode 100644 index 433cc464..00000000 --- a/yaml/en/Language/go/1.23.0/1.23.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: go-1-23-0-2024-11-12-0651 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: go - config: - image: ghcr.io/labring-actions/devbox/go-1.23.0:13aacd - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: go 1.23.0 - version: "1.23.0" - runtimeVersion: 2024-11-12-0651 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: go -spec: - title: "go" - kind: Language - description: go diff --git a/yaml/en/Language/java/openjdk17/openjdk17.yaml b/yaml/en/Language/java/openjdk17/openjdk17.yaml deleted file mode 100644 index 9dbb5ace..00000000 --- a/yaml/en/Language/java/openjdk17/openjdk17.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: java-openjdk17-2024-11-12-0651 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: java - config: - image: ghcr.io/labring-actions/devbox/java-openjdk17:13aacd - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: java openjdk17 - version: "openjdk17" - runtimeVersion: 2024-11-12-0651 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: java -spec: - title: "java" - kind: Language - description: java diff --git a/yaml/en/Language/net/8.0/8.0.yaml b/yaml/en/Language/net/8.0/8.0.yaml deleted file mode 100644 index b94cd344..00000000 --- a/yaml/en/Language/net/8.0/8.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: net-8-0-2024-11-12-0651 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: net - config: - image: ghcr.io/labring-actions/devbox/net-8.0:13aacd - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: net 8.0 - version: "8.0" - runtimeVersion: 2024-11-12-0651 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: net -spec: - title: ".Net" - kind: Language - description: net diff --git a/yaml/en/Language/node.js/18/18.yaml b/yaml/en/Language/node.js/18/18.yaml deleted file mode 100644 index 405397f3..00000000 --- a/yaml/en/Language/node.js/18/18.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: node.js-18-2024-11-19-0747 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: node.js - config: - image: ghcr.io/labring-actions/devbox/node.js-18:219d11 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: node.js 18 - version: "18" - runtimeVersion: 2024-11-19-0747 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: node.js -spec: - title: "node.js" - kind: Language - description: node.js diff --git a/yaml/en/Language/node.js/20/20.yaml b/yaml/en/Language/node.js/20/20.yaml deleted file mode 100644 index c55d33fe..00000000 --- a/yaml/en/Language/node.js/20/20.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: node.js-20-2024-11-19-0747 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: node.js - config: - image: ghcr.io/labring-actions/devbox/node.js-20:219d11 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: node.js 20 - version: "20" - runtimeVersion: 2024-11-19-0747 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: node.js -spec: - title: "node.js" - kind: Language - description: node.js diff --git a/yaml/en/Language/node.js/22/22.yaml b/yaml/en/Language/node.js/22/22.yaml deleted file mode 100644 index e2d7ecd5..00000000 --- a/yaml/en/Language/node.js/22/22.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: node.js-22-2024-11-19-0747 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "true" -spec: - classRef: node.js - config: - image: ghcr.io/labring-actions/devbox/node.js-22:219d11 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: node.js 22 - version: "22" - runtimeVersion: 2024-11-19-0747 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: node.js -spec: - title: "node.js" - kind: Language - description: node.js diff --git a/yaml/en/Language/php/7.4/7.4.yaml b/yaml/en/Language/php/7.4/7.4.yaml deleted file mode 100644 index 86ba7856..00000000 --- a/yaml/en/Language/php/7.4/7.4.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: php-7-4-2024-11-13-0347 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: php - config: - image: ghcr.io/labring-actions/devbox/php-7.4:248085 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: php 7.4 - version: "7.4" - runtimeVersion: 2024-11-13-0347 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: php -spec: - title: "PHP" - kind: Language - description: php diff --git a/yaml/en/Language/php/8.2.20/8.2.20.yaml b/yaml/en/Language/php/8.2.20/8.2.20.yaml deleted file mode 100644 index df059f19..00000000 --- a/yaml/en/Language/php/8.2.20/8.2.20.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: php-8-2-20-2024-11-13-0347 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "true" -spec: - classRef: php - config: - image: ghcr.io/labring-actions/devbox/php-8.2.20:248085 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: php 8.2.20 - version: "8.2.20" - runtimeVersion: 2024-11-13-0347 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: php -spec: - title: "PHP" - kind: Language - description: php diff --git a/yaml/en/Language/python/3.10/3.10.yaml b/yaml/en/Language/python/3.10/3.10.yaml deleted file mode 100644 index ec55f71f..00000000 --- a/yaml/en/Language/python/3.10/3.10.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: python-3-10-2024-12-27-0245 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: python - config: - image: ghcr.io/labring-actions/devbox/python-3.10:067ba7 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: python 3.10 - version: "3.10" - runtimeVersion: 2024-12-27-0245 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: python -spec: - title: "Python" - kind: Language - description: python diff --git a/yaml/en/Language/python/3.11/3.11.yaml b/yaml/en/Language/python/3.11/3.11.yaml deleted file mode 100644 index 3fd67384..00000000 --- a/yaml/en/Language/python/3.11/3.11.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: python-3-11-2024-12-27-0245 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: python - config: - image: ghcr.io/labring-actions/devbox/python-3.11:067ba7 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: python 3.11 - version: "3.11" - runtimeVersion: 2024-12-27-0245 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: python -spec: - title: "Python" - kind: Language - description: python diff --git a/yaml/en/Language/python/3.12/3.12.yaml b/yaml/en/Language/python/3.12/3.12.yaml deleted file mode 100644 index 5a7ea960..00000000 --- a/yaml/en/Language/python/3.12/3.12.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: python-3-12-2024-12-27-0245 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: python - config: - image: ghcr.io/labring-actions/devbox/python-3.12:067ba7 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: python 3.12 - version: "3.12" - runtimeVersion: 2024-12-27-0245 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: python -spec: - title: "Python" - kind: Language - description: python diff --git a/yaml/en/Language/rust/1.81.0/1.81.0.yaml b/yaml/en/Language/rust/1.81.0/1.81.0.yaml deleted file mode 100644 index 897298f0..00000000 --- a/yaml/en/Language/rust/1.81.0/1.81.0.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: rust-1-81-0-2024-11-12-0651 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: rust - config: - image: ghcr.io/labring-actions/devbox/rust-1.81.0:13aacd - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: rust 1.81.0 - version: "1.81.0" - runtimeVersion: 2024-11-12-0651 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: rust -spec: - title: "rust" - kind: Language - description: rust diff --git a/yaml/en/OS/debian-ssh/12.6/12.6.yaml b/yaml/en/OS/debian-ssh/12.6/12.6.yaml deleted file mode 100644 index d480ddc8..00000000 --- a/yaml/en/OS/debian-ssh/12.6/12.6.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: debian-ssh-12-6-2024-11-11-0803 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: debian-ssh - config: - image: ghcr.io/labring-actions/devbox/debian-ssh-12.6:a5f75b3 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: debian-ssh 12.6 - version: "12.6" - runtimeVersion: 2024-11-11-0803 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: debian-ssh -spec: - title: "debian" - kind: OS - description: debian-ssh diff --git a/yaml/en/OS/ubuntu-cuda/24.04/24.04.yaml b/yaml/en/OS/ubuntu-cuda/24.04/24.04.yaml deleted file mode 100644 index a86af256..00000000 --- a/yaml/en/OS/ubuntu-cuda/24.04/24.04.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: ubuntu-cuda-24-04-2024-12-25-0918 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: ubuntu-cuda - config: - image: ghcr.io/labring-actions/devbox/ubuntu-cuda-24.04:e73099 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: ubuntu-cuda 24.04 - version: "24.04" - runtimeVersion: 2024-12-25-0918 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: ubuntu-cuda -spec: - title: "Ubuntu-cuda" - kind: OS - description: ubuntu-cuda diff --git a/yaml/en/OS/ubuntu/24.04/24.04.yaml b/yaml/en/OS/ubuntu/24.04/24.04.yaml deleted file mode 100644 index ab7b4d55..00000000 --- a/yaml/en/OS/ubuntu/24.04/24.04.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: devbox.sealos.io/v1alpha1 -kind: Runtime -metadata: - name: ubuntu-24-04-2024-12-11-0729 - namespace: devbox-system - annotations: - devbox.sealos.io/defaultVersion: "false" -spec: - classRef: ubuntu - config: - image: ghcr.io/labring-actions/devbox/ubuntu-24.04:a5f75b3 - ports: - - containerPort: 22 - name: devbox-ssh-port - protocol: TCP - appPorts: - - port: 8080 - name: devbox-app-port - protocol: TCP - user: devbox - workingDir: /home/devbox/project - releaseCommand: - - /bin/bash - - -c - releaseArgs: - - /home/devbox/project/entrypoint.sh - description: ubuntu 24.04 - version: "24.04" - runtimeVersion: 2024-12-11-0729 - state: active ---- -apiVersion: devbox.sealos.io/v1alpha1 -kind: RuntimeClass -metadata: - name: ubuntu -spec: - title: "ubuntu" - kind: OS - description: ubuntu