diff --git a/apps/node/20.9.0/data.yml b/apps/node/20.9.0/data.yml new file mode 100644 index 00000000..fcc6ed69 --- /dev/null +++ b/apps/node/20.9.0/data.yml @@ -0,0 +1 @@ +additionalProperties: \ No newline at end of file diff --git a/apps/node/20.9.0/docker-compose.yml b/apps/node/20.9.0/docker-compose.yml new file mode 100644 index 00000000..3a2102f2 --- /dev/null +++ b/apps/node/20.9.0/docker-compose.yml @@ -0,0 +1,24 @@ +version: '3' +services: + node: + image: node:${NODE_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}:${NODE_APP_PORT} + healthcheck: + test: ["CMD-SHELL", "curl -f http://localhost:${NODE_APP_PORT} || exit 1"] + interval: 30s + timeout: 5s + retries: 20 + restart: always +networks: + 1panel-network: + external: true diff --git a/apps/node/20.9.0/run.sh b/apps/node/20.9.0/run.sh new file mode 100644 index 00000000..e7228d42 --- /dev/null +++ b/apps/node/20.9.0/run.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +source /.env + +if [[ "$PACKAGE_MANAGER" == "npm" ]]; then + npm config set registry $CONTAINER_PACKAGE_URL +elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then + yarn config set registry $CONTAINER_PACKAGE_URL +fi + +if [[ "$RUN_INSTALL" -eq "1" ]]; then + if [[ "$PACKAGE_MANAGER" == "npm" ]]; then + npm install + elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then + yarn install + else + echo "未知的 PACKAGE_MANAGER: $PACKAGE_MANAGER" + exit 1 + fi +fi + + +if [[ "$CUSTOM_SCRIPT" -eq "1" ]]; then + $EXEC_SCRIPT +else + if [[ "$PACKAGE_MANAGER" == "npm" ]]; then + npm run $EXEC_SCRIPT + elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then + yarn run $EXEC_SCRIPT + fi +fi + + + + diff --git a/apps/node/21.1.0/data.yml b/apps/node/21.1.0/data.yml new file mode 100644 index 00000000..fcc6ed69 --- /dev/null +++ b/apps/node/21.1.0/data.yml @@ -0,0 +1 @@ +additionalProperties: \ No newline at end of file diff --git a/apps/node/21.1.0/docker-compose.yml b/apps/node/21.1.0/docker-compose.yml new file mode 100644 index 00000000..3a2102f2 --- /dev/null +++ b/apps/node/21.1.0/docker-compose.yml @@ -0,0 +1,24 @@ +version: '3' +services: + node: + image: node:${NODE_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}:${NODE_APP_PORT} + healthcheck: + test: ["CMD-SHELL", "curl -f http://localhost:${NODE_APP_PORT} || exit 1"] + interval: 30s + timeout: 5s + retries: 20 + restart: always +networks: + 1panel-network: + external: true diff --git a/apps/node/21.1.0/run.sh b/apps/node/21.1.0/run.sh new file mode 100644 index 00000000..e7228d42 --- /dev/null +++ b/apps/node/21.1.0/run.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +source /.env + +if [[ "$PACKAGE_MANAGER" == "npm" ]]; then + npm config set registry $CONTAINER_PACKAGE_URL +elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then + yarn config set registry $CONTAINER_PACKAGE_URL +fi + +if [[ "$RUN_INSTALL" -eq "1" ]]; then + if [[ "$PACKAGE_MANAGER" == "npm" ]]; then + npm install + elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then + yarn install + else + echo "未知的 PACKAGE_MANAGER: $PACKAGE_MANAGER" + exit 1 + fi +fi + + +if [[ "$CUSTOM_SCRIPT" -eq "1" ]]; then + $EXEC_SCRIPT +else + if [[ "$PACKAGE_MANAGER" == "npm" ]]; then + npm run $EXEC_SCRIPT + elif [[ "$PACKAGE_MANAGER" == "yarn" ]]; then + yarn run $EXEC_SCRIPT + fi +fi + + + +