From 25aa5659bf1f3e612f99484f08246972dac24d74 Mon Sep 17 00:00:00 2001 From: admin Date: Wed, 1 Apr 2026 17:02:48 +1000 Subject: [PATCH] one pysh --- .drone.yml | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ Dockerfile | 22 ++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 .drone.yml create mode 100644 Dockerfile diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..633f27d --- /dev/null +++ b/.drone.yml @@ -0,0 +1,61 @@ +kind: pipeline +type: docker +name: default + +steps: + - name: build + image: python:3.11-slim + commands: + - pip install --no-cache-dir -r requirements.txt + + - name: test + image: python:3.11-slim + commands: + - pip install --no-cache-dir -r requirements.txt + - pip install pytest pytest-asyncio + - pytest tests/ -v || true + + - name: docker-build + image: plugins/docker + settings: + repo: 217.11.166.147:3000/admin/gptchat + registry: http://217.11.166.147:3000 + insecure: true + tags: + - latest + - ${DRONE_COMMIT_SHA:0:8} + username: + from_secret: docker_username + password: + from_secret: docker_password + context: . + dockerfile: Dockerfile + when: + branch: + - main + event: + - push + - custom + + - name: deploy + image: appleboy/drone-ssh + settings: + host: 217.11.166.147 + username: + from_secret: ssh_username + password: + from_secret: ssh_password + port: 22 + script: + - export DOCKER_HOST="unix:///var/run/docker.sock" + - docker stop gptchat || true + - docker rm gptchat || true + - docker pull 217.11.166.147:3000/admin/gptchat:latest + - docker run -d --name gptchat -p 8084:8084 217.11.166.147:3000/admin/gptchat:latest + when: + branch: + - main + event: + - push + - custom + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..09a0ddc --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ + +FROM python:3.11-slim + +WORKDIR /app + +RUN apt-get update && apt-get install -y --no-install-recommends curl \ + && rm -rf /var/lib/apt/lists/* + +RUN useradd -m -s /bin/bash appuser + +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +COPY . . + +RUN chown -R appuser:appuser /app + +USER appuser + +EXPOSE 8084 + +CMD ["python", "main.py", "--enable-gui", "--port", "8084", "--password", "admin"]