feat: implement base features

This commit is contained in:
Glenn Y. Rolland 2024-07-06 18:26:48 +02:00
parent 9c930d1d1c
commit 31be2a7117
6 changed files with 208 additions and 0 deletions

View file

@ -0,0 +1,2 @@
.drone.yml
.git

View file

@ -0,0 +1,111 @@
---
kind: pipeline
type: docker
name: default
steps:
- name: debug
image: alpine
environment:
commands:
- 'echo "Repository: glenux/service-wallabag"'
- 'echo "Git commit: ${DRONE_COMMIT_SHA:0:8}"'
- name: publish:commit_sha
image: plugins/docker
# pull: never
# volumes:
# - name: cache
# path: /stupid
environment:
DOCKER_REPO: glenux/service-wallabag
settings:
username:
from_secret: DOCKERHUB_USERNAME
password:
from_secret: DOCKERHUB_PASSWORD
cache_from: "glenux/service-wallabag:latest_${DRONE_BRANCH/\\//-}"
repo: glenux/service-wallabag
tags: "${DRONE_COMMIT_SHA:0:8}"
purge: false
- name: publish:commit_branch
image: plugins/docker
# volumes:
# - name: cache
# path: /stupid
settings:
username:
from_secret: DOCKERHUB_USERNAME
password:
from_secret: DOCKERHUB_PASSWORD
cache_from: "glenux/service-wallabag:latest_${DRONE_BRANCH/\\//-}"
repo: glenux/service-wallabag
tags: "latest_${DRONE_BRANCH/\\//-}"
purge: false
when:
branch:
- "master"
- "develop"
- "feature/*"
- name: publish:latest
image: plugins/docker
settings:
username:
from_secret: DOCKERHUB_USERNAME
password:
from_secret: DOCKERHUB_PASSWORD
cache_from: "glenux/service-wallabag:latest_${DRONE_BRANCH/\\//-}"
repo: glenux/service-wallabag
tags: latest
purge: false
when:
branch:
- master
- name: deploy:dokku
image: alpine
when:
branch:
- master
environment:
SSH_USER:
from_secret: SSH_USER
SSH_HOST:
from_secret: SSH_HOST
SSH_PRIVATE_KEY:
from_secret: SSH_PRIVATE_KEY
commands:
- echo $SSH_USER
- echo $SSH_HOST
- echo $SSH_PRIVATE_KEY
- apk update && apk add openssh-client
- mkdir -p ~/.ssh && chmod 700 ~/.ssh
- echo "$SSH_PRIVATE_KEY" | base64 -d > ~/.ssh/deploy_key
- chmod 600 ~/.ssh/deploy_key
- ssh -o StrictHostKeyChecking=no
-i ~/.ssh/deploy_key
"$SSH_USER@$SSH_HOST"
git:from-image automation
"glenux/service-wallabag:${DRONE_COMMIT_SHA:0:8}"
#
# volumes:
# - name: cache
# temp: {}
#
# ---
# kind: pipeline
# type: docker
# name: sheduled
#
# steps:
# - name: check:update
# image: alpine
# environment:
#
# commands:
# - 'echo "Repository: glenux/service-wallabag"'
# - 'echo "Git commit: ${DRONE_COMMIT_SHA:0:8}"'

View file

@ -0,0 +1,8 @@
FROM wallabag/wallabag:2.6.9
# Copy custom entrypoint script
COPY --chown=wallabag:wallabag --chmod=755 entrypoint-wrapper.sh /entrypoint-wrapper.sh
# Set the custom entrypoint
ENTRYPOINT ["/entrypoint-wrapper.sh"]

View file

@ -0,0 +1,26 @@
dokku apps:create wallabag
dokku mariadb:create wallabag_db
dokku mariadb:link wallabag_db wallabag
dokku redis:create wallabag_redis
dokku redis:link wallabag_redis wallabag
dokku config:set wallabag MYSQL_ROOT_PASSWORD=wallaroot
dokku config:set wallabag SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql
dokku config:set wallabag SYMFONY__ENV__DATABASE_HOST=$(dokku mariadb:info wallabag_db --dsn | grep '^Host=' | cut -d= -f2)
dokku config:set wallabag SYMFONY__ENV__DATABASE_PORT=3306
dokku config:set wallabag SYMFONY__ENV__DATABASE_NAME=wallabag
dokku config:set wallabag SYMFONY__ENV__DATABASE_USER=wallabag
dokku config:set wallabag SYMFONY__ENV__DATABASE_PASSWORD=wallapass
dokku config:set wallabag SYMFONY__ENV__DATABASE_CHARSET=utf8mb4
dokku config:set wallabag SYMFONY__ENV__DATABASE_TABLE_PREFIX="wallabag_"
dokku config:set wallabag SYMFONY__ENV__MAILER_DSN=smtp://127.0.0.1
dokku config:set wallabag SYMFONY__ENV__FROM_EMAIL=wallabag@example.com
dokku config:set wallabag SYMFONY__ENV__DOMAIN_NAME=https://your-wallabag-instance.wallabag.org
dokku config:set wallabag SYMFONY__ENV__SERVER_NAME="Your wallabag instance"
mkdir -p /opt/wallabag/images
dokku storage:mount wallabag /opt/wallabag/images:/var/www/wallabag/web/assets/images
FROM wallabag/wallabag

View file

@ -0,0 +1,45 @@
version: '3'
services:
wallabag:
image: wallabag/wallabag
environment:
- MYSQL_ROOT_PASSWORD=wallaroot
- SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql
- SYMFONY__ENV__DATABASE_HOST=db
- SYMFONY__ENV__DATABASE_PORT=3306
- SYMFONY__ENV__DATABASE_NAME=wallabag
- SYMFONY__ENV__DATABASE_USER=wallabag
- SYMFONY__ENV__DATABASE_PASSWORD=wallapass
- SYMFONY__ENV__DATABASE_CHARSET=utf8mb4
- SYMFONY__ENV__DATABASE_TABLE_PREFIX="wallabag_"
- SYMFONY__ENV__MAILER_DSN=smtp://127.0.0.1
- SYMFONY__ENV__FROM_EMAIL=wallabag@example.com
- SYMFONY__ENV__DOMAIN_NAME=https://your-wallabag-instance.wallabag.org
- SYMFONY__ENV__SERVER_NAME="Your wallabag instance"
ports:
- "80"
volumes:
- /opt/wallabag/images:/var/www/wallabag/web/assets/images
healthcheck:
test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost"]
interval: 1m
timeout: 3s
depends_on:
- db
- redis
db:
image: mariadb
environment:
- MYSQL_ROOT_PASSWORD=wallaroot
volumes:
- /opt/wallabag/data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
interval: 20s
timeout: 3s
redis:
image: redis:alpine
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 20s
timeout: 3s

16
entrypoint-wrapper.sh Normal file
View file

@ -0,0 +1,16 @@
#!/bin/bash
# Parse DATABASE_URL
if [ -n "$DATABASE_URL" ]; then
export SYMFONY__ENV__DATABASE_DRIVER=$(echo $DATABASE_URL | sed -e 's,^\(.*\)://.*,\\1,g')
export SYMFONY__ENV__DATABASE_USER=$(echo $DATABASE_URL | sed -e 's,.*://\([^:]*\):.*,\1,g')
export SYMFONY__ENV__DATABASE_PASSWORD=$(echo $DATABASE_URL | sed -e 's,.*:.\([^@]*\)@.*,\\1,g')
export SYMFONY__ENV__DATABASE_HOST=$(echo $DATABASE_URL | sed -e 's,.*@\([^:]*\):.*,\\1,g')
export SYMFONY__ENV__DATABASE_PORT=$(echo $DATABASE_URL | sed -e 's,.*:\([^/]*\)/.*,\\1,g')
export SYMFONY__ENV__DATABASE_NAME=$(echo $DATABASE_URL | sed -e 's,.*\/\([^?]*\).*,\\1,g')
fi
# Call the original entrypoint
exec docker-php-entrypoint "$@"