From dc792d24131992f5e85c854ec69e36b59f13b005 Mon Sep 17 00:00:00 2001 From: zhengkunwang <31820853+zhengkunwang223@users.noreply.github.com> Date: Mon, 21 Oct 2024 15:42:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=20python=20=E8=BF=90?= =?UTF-8?q?=E8=A1=8C=E7=8E=AF=E5=A2=83=20(#2337)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/python.zip | Bin 0 -> 16319 bytes apps/python/3.10.15/data.yml | 1 + apps/python/3.10.15/docker-compose.yml | 18 ++++++++++++++++++ apps/python/3.10.15/run.sh | 5 +++++ apps/python/3.11.10/data.yml | 1 + apps/python/3.11.10/docker-compose.yml | 18 ++++++++++++++++++ apps/python/3.11.10/run.sh | 5 +++++ apps/python/3.12.7/data.yml | 1 + apps/python/3.12.7/docker-compose.yml | 18 ++++++++++++++++++ apps/python/3.12.7/run.sh | 5 +++++ apps/python/3.13.0/data.yml | 1 + apps/python/3.13.0/docker-compose.yml | 18 ++++++++++++++++++ apps/python/3.13.0/run.sh | 10 ++++++++++ apps/python/README.md | 3 +++ apps/python/data.yml | 19 +++++++++++++++++++ apps/python/logo.png | Bin 0 -> 11919 bytes 16 files changed, 123 insertions(+) create mode 100644 apps/python.zip create mode 100644 apps/python/3.10.15/data.yml create mode 100644 apps/python/3.10.15/docker-compose.yml create mode 100644 apps/python/3.10.15/run.sh create mode 100644 apps/python/3.11.10/data.yml create mode 100644 apps/python/3.11.10/docker-compose.yml create mode 100644 apps/python/3.11.10/run.sh create mode 100644 apps/python/3.12.7/data.yml create mode 100644 apps/python/3.12.7/docker-compose.yml create mode 100644 apps/python/3.12.7/run.sh create mode 100644 apps/python/3.13.0/data.yml create mode 100644 apps/python/3.13.0/docker-compose.yml create mode 100644 apps/python/3.13.0/run.sh create mode 100644 apps/python/README.md create mode 100644 apps/python/data.yml create mode 100644 apps/python/logo.png diff --git a/apps/python.zip b/apps/python.zip new file mode 100644 index 0000000000000000000000000000000000000000..81eb2e0fb8b1d8899244dd91a77caa9e124bcc52 GIT binary patch literal 16319 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 Cqe+1P literal 0 HcmV?d00001 diff --git a/apps/python/3.10.15/data.yml b/apps/python/3.10.15/data.yml new file mode 100644 index 000000000..fcc6ed694 --- /dev/null +++ b/apps/python/3.10.15/data.yml @@ -0,0 +1 @@ +additionalProperties: \ No newline at end of file diff --git a/apps/python/3.10.15/docker-compose.yml b/apps/python/3.10.15/docker-compose.yml new file mode 100644 index 000000000..453c59b87 --- /dev/null +++ b/apps/python/3.10.15/docker-compose.yml @@ -0,0 +1,18 @@ +services: + node: + image: python:${PYTHON_VERSION} + container_name: ${CONTAINER_NAME} + working_dir: /app + volumes: + - ${CODE_DIR}:/app + - ./run.sh:/run.sh + - ./.env:/.env + command: bash /run.sh + networks: + - 1panel-network + ports: + - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} + restart: on-failure:5 +networks: + 1panel-network: + external: true diff --git a/apps/python/3.10.15/run.sh b/apps/python/3.10.15/run.sh new file mode 100644 index 000000000..21519ccc6 --- /dev/null +++ b/apps/python/3.10.15/run.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +source /.env + +$EXEC_SCRIPT diff --git a/apps/python/3.11.10/data.yml b/apps/python/3.11.10/data.yml new file mode 100644 index 000000000..fcc6ed694 --- /dev/null +++ b/apps/python/3.11.10/data.yml @@ -0,0 +1 @@ +additionalProperties: \ No newline at end of file diff --git a/apps/python/3.11.10/docker-compose.yml b/apps/python/3.11.10/docker-compose.yml new file mode 100644 index 000000000..453c59b87 --- /dev/null +++ b/apps/python/3.11.10/docker-compose.yml @@ -0,0 +1,18 @@ +services: + node: + image: python:${PYTHON_VERSION} + container_name: ${CONTAINER_NAME} + working_dir: /app + volumes: + - ${CODE_DIR}:/app + - ./run.sh:/run.sh + - ./.env:/.env + command: bash /run.sh + networks: + - 1panel-network + ports: + - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} + restart: on-failure:5 +networks: + 1panel-network: + external: true diff --git a/apps/python/3.11.10/run.sh b/apps/python/3.11.10/run.sh new file mode 100644 index 000000000..21519ccc6 --- /dev/null +++ b/apps/python/3.11.10/run.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +source /.env + +$EXEC_SCRIPT diff --git a/apps/python/3.12.7/data.yml b/apps/python/3.12.7/data.yml new file mode 100644 index 000000000..fcc6ed694 --- /dev/null +++ b/apps/python/3.12.7/data.yml @@ -0,0 +1 @@ +additionalProperties: \ No newline at end of file diff --git a/apps/python/3.12.7/docker-compose.yml b/apps/python/3.12.7/docker-compose.yml new file mode 100644 index 000000000..453c59b87 --- /dev/null +++ b/apps/python/3.12.7/docker-compose.yml @@ -0,0 +1,18 @@ +services: + node: + image: python:${PYTHON_VERSION} + container_name: ${CONTAINER_NAME} + working_dir: /app + volumes: + - ${CODE_DIR}:/app + - ./run.sh:/run.sh + - ./.env:/.env + command: bash /run.sh + networks: + - 1panel-network + ports: + - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} + restart: on-failure:5 +networks: + 1panel-network: + external: true diff --git a/apps/python/3.12.7/run.sh b/apps/python/3.12.7/run.sh new file mode 100644 index 000000000..21519ccc6 --- /dev/null +++ b/apps/python/3.12.7/run.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +source /.env + +$EXEC_SCRIPT diff --git a/apps/python/3.13.0/data.yml b/apps/python/3.13.0/data.yml new file mode 100644 index 000000000..fcc6ed694 --- /dev/null +++ b/apps/python/3.13.0/data.yml @@ -0,0 +1 @@ +additionalProperties: \ No newline at end of file diff --git a/apps/python/3.13.0/docker-compose.yml b/apps/python/3.13.0/docker-compose.yml new file mode 100644 index 000000000..453c59b87 --- /dev/null +++ b/apps/python/3.13.0/docker-compose.yml @@ -0,0 +1,18 @@ +services: + node: + image: python:${PYTHON_VERSION} + container_name: ${CONTAINER_NAME} + working_dir: /app + volumes: + - ${CODE_DIR}:/app + - ./run.sh:/run.sh + - ./.env:/.env + command: bash /run.sh + networks: + - 1panel-network + ports: + - ${HOST_IP}:${PANEL_APP_PORT_HTTP}:${APP_PORT} + restart: on-failure:5 +networks: + 1panel-network: + external: true diff --git a/apps/python/3.13.0/run.sh b/apps/python/3.13.0/run.sh new file mode 100644 index 000000000..2272029e1 --- /dev/null +++ b/apps/python/3.13.0/run.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +source /.env + +eval $EXEC_SCRIPT + + + + + diff --git a/apps/python/README.md b/apps/python/README.md new file mode 100644 index 000000000..ed8a39cda --- /dev/null +++ b/apps/python/README.md @@ -0,0 +1,3 @@ +# Python + +Python 运行环境 \ No newline at end of file diff --git a/apps/python/data.yml b/apps/python/data.yml new file mode 100644 index 000000000..dffd1b89a --- /dev/null +++ b/apps/python/data.yml @@ -0,0 +1,19 @@ +name: Python +tags: + - 运行环境 +title: Python 运行环境 +description: Python 运行环境 +additionalProperties: + key: python + name: Python + tags: + - Runtime + shortDescZh: Python 运行环境 + shortDescEn: Python Runtime + type: python + crossVersionUpdate: false + limit: 0 + recommend: 101 + website: https://www.python.org/ + github: "" + document: "" \ No newline at end of file diff --git a/apps/python/logo.png b/apps/python/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..13e4b4fc32575f1fc9dd8a268df8f3d05ec729d1 GIT binary patch literal 11919 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