From cfad2784df8b1de1792cfd16a8383e27ae75f88d Mon Sep 17 00:00:00 2001 From: websoft9 Date: Mon, 3 Mar 2025 08:53:15 +0000 Subject: [PATCH] Update kestra --- apps/kestra/.env | 61 +++----------- apps/kestra/Dockerfile | 21 ----- apps/kestra/README.jinja2 | 26 ------ apps/kestra/docker-compose.yml | 96 ++++++++++++++--------- apps/kestra/src/nginx-proxy.conf.template | 57 -------------- apps/kestra/src/php_exra.ini | 8 -- 6 files changed, 73 insertions(+), 196 deletions(-) delete mode 100644 apps/kestra/Dockerfile delete mode 100644 apps/kestra/README.jinja2 delete mode 100644 apps/kestra/src/nginx-proxy.conf.template delete mode 100644 apps/kestra/src/php_exra.ini diff --git a/apps/kestra/.env b/apps/kestra/.env index 3de1cc8ac..400937cc5 100644 --- a/apps/kestra/.env +++ b/apps/kestra/.env @@ -1,53 +1,16 @@ -W9_REPO="wordpress" -W9_DIST=community -W9_VERSION="latest" - -W9_POWER_PASSWORD="1PrMxExC45LsCT" - -# Environments which for user settings when create application -# Named expression: W9_xxx_xxx_SET, xxx refer to file fields -W9_HTTP_PORT_SET=9001 -# W9_HTTPS_PORT_SET=9002 -# W9_DB_PORT_SET=3306 -# W9_SSH_PORT_SET=23 -W9_KEY_SET="dfsjdkjf77xjxcjcj" - -#### -- Not allowed to edit below environments when recreate app based on existing data -- #### - -W9_ID=kestra - -# W9_HTTP_PORT or W9_HTTPS_PORT is need at leaset and used for proxy for web application -# Some container (e.g teleport) need HTTPS access, then need to set this pra -W9_HTTP_PORT=80 -W9_HTTPS_PORT=81 - -W9_LOGIN_USER=admin -# use https://1password.com/zh-cn/password-generator/ to genarate 14 bit password -# this password can also use password file -W9_LOGIN_PASSWORD=$W9_POWER_PASSWORD -W9_ADMIN_PATH="/wp-login" - +W9_REPO="kestra/kestra" +W9_DIST='community' +W9_VERSION='latest' +W9_POWER_PASSWORD='t4cd0S#PGKN5ivQ2' +W9_HTTP_PORT_SET='9001' +W9_HTTP_PORT=8080 +W9_ID='kestra' # Container name's suffix must use one of the value -W9_DB_EXPOSE="mysql,postgresql,mariadb,mongodb,redis" - -# It is used when the application APP needs to set an external URL, which can be IP(or domain), IP:PORT -# If have protocols, should be set it in the APP's ENV -W9_URL=internet_ip:$W9_HTTP_PORT_SET -# modifies W9_URL on init when it is true -W9_URL_REPLACE=true - +W9_DB_EXPOSE="postgresql" +W9_DB_VERSION="latest" +W9_LOGIN_USER=admin@kestra.io +W9_LOGIN_PASSWORD=$W9_POWER_PASSWORD +W9_URL='internet_ip:$W9_HTTP_PORT_SET' W9_NETWORK=websoft9 #### ----------------------------------------------------------------------------------------- #### - - -# Below environment is created by this app - -WORDPRESS_DB_HOST=$W9_ID-mariadb -WORDPRESS_DB_USER=wordpress #if use postgresql, it need set to postgres -WORDPRESS_DB_PASSWORD=$W9_POWER_PASSWORD -WORDPRESS_DB_NAME=wordpress - - -#W9_NAME="" -#W9_RCODE="" \ No newline at end of file diff --git a/apps/kestra/Dockerfile b/apps/kestra/Dockerfile deleted file mode 100644 index 4364b46fb..000000000 --- a/apps/kestra/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -# image: https://hub.docker.com/r/websoft9dev/discuzq - -FROM ccr.ccs.tencentyun.com/discuzq/dzq:latest - -LABEL org.opencontainers.image.authors="https://www.websoft9.com" \ - org.opencontainers.image.description="Application packaged by Websoft9" \ - org.opencontainers.image.source="https://github.com/Websoft9/docker-library/tree/main/apps/opencart" \ - org.opencontainers.image.title="OpenCart" \ - org.opencontainers.image.vendor="Websoft9 Inc." \ - org.opencontainers.image.version="4.0.1.1" - -ENV DISCUZQ_MYSQL_HOST=mysql -ENV DISCUZQ_MYSQL_USER=discuzq -ENV DISCUZQ_MYSQL_PASSWORD=discuzq -ENV DISCUZQ_MYSQL_DATABASE=discuzq -ENV DISCUZQ_SITENAME=DiscuzQ - -COPY cmd.sh /tmp -RUN chmod +x /tmp/cmd.sh - -CMD ["/tmp/cmd.sh"] diff --git a/apps/kestra/README.jinja2 b/apps/kestra/README.jinja2 deleted file mode 100644 index 8949cc4e0..000000000 --- a/apps/kestra/README.jinja2 +++ /dev/null @@ -1,26 +0,0 @@ -# {{trademark}} on Docker - -This is an **Docker Compose solution** powered by [Websoft9](https://www.websoft9.com) based on Docker for {{trademark}}: - -{% for ed in edition %} - - {{ed.dist}}: {{ ed.version | join(', ') }} -{% endfor %} - -## System Requirements - -The following are the minimal [recommended requirements]({{requirements.url}}): - -* **RAM**: {{requirements.memory}} GB or more -* **CPU**: {{requirements.cpu}} cores or higher -* **Disk**: at least {{requirements.disk}} GB of free space -* **bandwidth**: more fluent experience over 100M - -## Install - -You can install this {{trademark}} by [How to use it?](https://github.com/Websoft9/docker-library#how-to-use-it). - -If you want use {{trademark}} with **Websoft9 Business Support** free, you can [subscribe {{trademark}}](https://www.websoft9.com/apps) on Cloud platform - -## Documentation - -[{{trademark}} Administrator Guide](https://support.websoft9.com/docs/{{name}}) powered by Websoft9 diff --git a/apps/kestra/docker-compose.yml b/apps/kestra/docker-compose.yml index 1c1948688..ff845dc69 100644 --- a/apps/kestra/docker-compose.yml +++ b/apps/kestra/docker-compose.yml @@ -1,48 +1,74 @@ -# image,docs: https://hub.docker.com/_/wordpress/ +# image: https://hub.docker.com/r/kestra/kestra +# compose: https://github.com/kestra-io/kestra/blob/develop/docker-compose.yml +# docs: https://kestra.io/docs/getting-started services: - - wordpress: - image: $W9_REPO:$W9_VERSION - container_name: $W9_ID + postgres: + image: postgres:$W9_DB_VERSION + container_name: ${W9_ID}-postgresql restart: unless-stopped - #This is for access host from container - # extra_hosts: ["host.docker.internal:host-gateway"] - # command: | - # /bin/bash -c "ping -c 3 host.docker.internal" - logging: - driver: "json-file" - options: - max-file: "5" - max-size: 10m - deploy: - resources: - limits: - memory: 5g - cpus: '0.7' - ports: - - $W9_HTTP_PORT_SET:80 - env_file: .env volumes: - - wordpress:/var/www/html - - ./src/php_exra.ini:/usr/local/etc/php/conf.d/php_exra.ini + - postgres-data:/var/lib/postgresql/data + environment: + POSTGRES_DB: kestra + POSTGRES_USER: kestra + POSTGRES_PASSWORD: $W9_POWER_PASSWORD + healthcheck: + test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"] + interval: 30s + timeout: 10s + retries: 10 - mariadb: - image: mariadb:10.4 - container_name: $W9_ID-mariadb + kestra: + image: ${W9_REPO}:${W9_VERSION} + env_file: .env restart: unless-stopped - command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --innodb_log_buffer_size=30M + container_name: ${W9_ID} + # Note that this setup with a root user is intended for development purpose. + # Our base image runs without root, but the Docker Compose implementation needs root to access the Docker socket + # To run Kestra in a rootless mode in production, see: https://kestra.io/docs/installation/podman-compose + user: "root" + command: server standalone volumes: - - mysql_data:/var/lib/mysql + - kestra-data:/app/storage + - /var/run/docker.sock:/var/run/docker.sock + - /tmp/kestra-wd:/tmp/kestra-wd environment: - MYSQL_DATABASE: $WORDPRESS_DB_NAME - MYSQL_USER: $WORDPRESS_DB_USER - MYSQL_PASSWORD: $W9_POWER_PASSWORD - MYSQL_ROOT_PASSWORD: $W9_POWER_PASSWORD + KESTRA_CONFIGURATION: | + datasources: + postgres: + url: jdbc:postgresql://${W9_ID}-postgresql:5432/kestra + driverClassName: org.postgresql.Driver + username: kestra + password: $W9_POWER_PASSWORD + kestra: + server: + basicAuth: + enabled: true + username: "admin@kestra.io" # it must be a valid email address + password: $W9_POWER_PASSWORD + repository: + type: postgres + storage: + type: local + local: + basePath: "/app/storage" + queue: + type: postgres + tasks: + tmpDir: + path: /tmp/kestra-wd/tmp + url: http://localhost:8080/ + ports: + - "${W9_HTTP_PORT_SET}:8080" + #- "8081:8081" + depends_on: + postgres: + condition: service_started volumes: - wordpress: - mysql_data: + postgres-data: + kestra-data: networks: default: diff --git a/apps/kestra/src/nginx-proxy.conf.template b/apps/kestra/src/nginx-proxy.conf.template deleted file mode 100644 index 951364ffe..000000000 --- a/apps/kestra/src/nginx-proxy.conf.template +++ /dev/null @@ -1,57 +0,0 @@ -proxy_busy_buffers_size 512k; -proxy_buffers 4 512k; -proxy_buffer_size 256k; -client_max_body_size 50m; -# override default location / -location / { - add_header X-Served-By $host; - proxy_set_header Host $host; - proxy_set_header X-Forwarded-Scheme $scheme; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Real-IP $remote_addr; - proxy_pass $forward_scheme://$server:$port$request_uri; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection upgrade; - } - -location /console { - proxy_pass http://$server:8080; - proxy_http_version 1.1; - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; -} - -# for echo some useful information -location / { - default_type text/plain; - return 200 'Hello World'; -} - -location /oida/ { -# this is the address and port of the ORDS installation -proxy_pass http://127.0.0.1:8080/ords/; - -# set Origin to blank to avoid Chrome problems with CORS -proxy_set_header Origin "" ; - -# pass along some header variables with the public host name/port/and so on -proxy_set_header Host $host; -proxy_set_header X-Forwarded-Host $host:$server_port; -proxy_set_header X-Real-IP $remote_addr; -proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; -proxy_set_header X-Forwarded-Proto $scheme; - -# this reverse proxies any "location" headers being passed in the response -proxy_redirect http://$host/ords/ https://$host/oida/; - -# also tell cookies their public path -proxy_cookie_path /ords/ /oida/; - -# reverse proxy links included in response (ie from ORDS webservice) -sub_filter_types application/json ; -sub_filter http://$host/ords/ https://$host/oida/; -sub_filter_once off; -} diff --git a/apps/kestra/src/php_exra.ini b/apps/kestra/src/php_exra.ini deleted file mode 100644 index b253d5718..000000000 --- a/apps/kestra/src/php_exra.ini +++ /dev/null @@ -1,8 +0,0 @@ -file_uploads = On -max_input_time = 800 -max_execution_time = 300 -memory_limit = 600M -upload_max_filesize = 900M -post_max_size = 900M -max_file_uploads = 200 -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT \ No newline at end of file