diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..0b1e1e7 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,27 @@ +**/__pycache__ +**/.venv +**/.classpath +**/.dockerignore +**/.env +**/.git +**/.gitignore +**/.project +**/.settings +**/.toolstarget +**/.vs +**/.vscode +**/*.*proj.user +**/*.dbmdl +**/*.jfm +**/bin +**/charts +**/docker-compose* +**/compose* +**/Dockerfile* +**/node_modules +**/npm-debug.log +**/obj +**/secrets.dev.yaml +**/values.dev.yaml +LICENSE +README.md diff --git a/.vscode/launch.json b/.vscode/launch.json index 9a221b7..e08a664 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -12,6 +12,21 @@ "envFile": "${workspaceFolder}/.env", "console": "integratedTerminal", "justMyCode": true + }, + { + "name": "Docker: Python - General", + "type": "docker", + "request": "launch", + "preLaunchTask": "docker-run: debug", + "python": { + "pathMappings": [ + { + "localRoot": "${workspaceFolder}", + "remoteRoot": "/app" + } + ], + "projectType": "general" + } } ] } diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..aa3e296 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,24 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "type": "docker-build", + "label": "docker-build", + "platform": "python", + "dockerBuild": { + "tag": "pixivcord:latest", + "dockerfile": "${workspaceFolder}/Dockerfile", + "context": "${workspaceFolder}", + "pull": true + } + }, + { + "type": "docker-run", + "label": "docker-run: debug", + "dependsOn": ["docker-build"], + "python": { + "file": "main.py" + } + } + ] +} diff --git a/.woodpecker.yml b/.woodpecker.yml new file mode 100644 index 0000000..60a72f5 --- /dev/null +++ b/.woodpecker.yml @@ -0,0 +1,34 @@ +steps: + build-only: + image: woodpeckerci/plugin-docker-buildx + settings: + repo: git.sebclem.fr/sebclem/${CI_REPO_NAME} + cache_from: git.sebclem.fr/sebclem/${CI_REPO_NAME} + registry: git.sebclem.fr + dry_run: true + auto_tag: true + logins: + - registry: https://git.sebclem.fr + username: + from_secret: docker_user + password: + from_secret: docker_token + when: + event: [push, pull_request, manual] + + publish: + image: woodpeckerci/plugin-docker-buildx + settings: + platforms: linux/amd64 + auto_tag: true + repo: git.sebclem.fr/sebclem/${CI_REPO_NAME} + cache_from: git.sebclem.fr/sebclem/${CI_REPO_NAME} + logins: + - registry: https://git.sebclem.fr + username: + from_secret: docker_user + password: + from_secret: docker_token + when: + event: + - tag \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5bd3305 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +# For more information, please refer to https://aka.ms/vscode-docker-python +FROM python:3.10-slim + +# Keeps Python from generating .pyc files in the container +ENV PYTHONDONTWRITEBYTECODE=1 + +# Turns off buffering for easier container logging +ENV PYTHONUNBUFFERED=1 + +# Install pip requirements +COPY requirements.txt . +RUN python -m pip install -r requirements.txt + +WORKDIR /app +COPY . /app + +# Creates a non-root user with an explicit UID and adds permission to access the /app folder +# For more info, please refer to https://aka.ms/vscode-docker-python-configure-containers +RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app +USER appuser + +CMD ["python", "main.py"] diff --git a/docker-compose.debug.yml b/docker-compose.debug.yml new file mode 100644 index 0000000..0ae9fbc --- /dev/null +++ b/docker-compose.debug.yml @@ -0,0 +1,11 @@ +version: '3.4' + +services: + pixivcord: + image: pixivcord + build: + context: . + dockerfile: ./Dockerfile + command: ["sh", "-c", "pip install debugpy -t /tmp && python /tmp/debugpy --wait-for-client --listen 0.0.0.0:5678 main.py "] + ports: + - 5678:5678 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..1bdb3de --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,8 @@ +version: '3.4' + +services: + pixivcord: + image: pixivcord + build: + context: . + dockerfile: ./Dockerfile