Compare commits

..
10 Commits
Author SHA1 Message Date
onixbyte d775e61e8c chore: synchronise get-docker.sh with upstream 2026-09-10 02:03:54 +00:00
siujamo 088c530361 chore: migrate CI to GitHub Actions 2026-09-04 11:43:47 +08:00
siujamo 7bc7742a7f Merge branch 'main' of onixbyte.dev:onixbyte/docker-infra 2026-08-27 11:12:43 +08:00
siujamo 01e0e603d9 feat(mariadb): add mariadb lts compose files
- add compose/mariadb/docker-compose.yaml for mariadb:lts
- expose port 3306 and persist data with mariadb_data volume
- add compose/mariadb/.env.example with default init vars
2026-08-27 11:11:16 +08:00
gitea-actions-bot 5743bf4741 chore: synchronise get-docker.sh with upstream 2026-08-27 02:00:07 +00:00
gitea-actions-bot bf8dd29c47 chore: synchronise get-docker.sh with upstream 2026-08-13 02:00:33 +00:00
zihluwang dcd3358b15 feat: add vocechat server 2026-08-03 10:11:50 +08:00
siujamo f889be6cdb feat(valkey): add Valkey 9 Alpine compose file
- Add docker-compose.yaml with password authentication commented out by
  default (no password required)
- Add .env.example with VALKEY_PASSWORD documented and commented out
2026-07-30 14:24:42 +08:00
siujamo 4024f91caf feat(mysql): add MySQL 8 Alpine compose file
- Add docker-compose.yaml with MYSQL_ROOT_PASSWORD, MYSQL_DATABASE,
  MYSQL_USER, and MYSQL_PASSWORD environment variables
- Add .env.example with documented defaults
2026-07-30 14:23:14 +08:00
siujamo f69c710d91 feat(redis): add Redis 8 Alpine compose file
- Add docker-compose.yaml with password authentication commented out by
  default (no password required)
- Add .env.example with REDIS_PASSWORD documented and commented out
2026-07-30 14:15:17 +08:00
11 changed files with 231 additions and 8 deletions

No files matched your search

@@ -2,19 +2,20 @@ name: Synchronise Upstream Script
on:
schedule:
# Runs at 02:00 GMT every Thursday (4 represents Thursday)
# Runs at 02:00 UTC every Thursday (4 represents Thursday)
- cron: '0 2 * * 4'
workflow_dispatch: # Allows manual triggering to test the workflow behaviour
# Grant the built-in GITHUB_TOKEN permission to push the synced script
permissions:
contents: write
jobs:
update-script:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
# Ensure we have the necessary credentials to push changes
token: ${{ secrets.GITHUB_TOKEN }}
- name: Download the latest script
run: |
@@ -27,7 +28,7 @@ jobs:
- name: Check for changes and commit
run: |
# Configure Git identity for the automated commit
git config user.name "gitea-actions-bot"
git config user.name "onixbyte"
git config user.email "actions@onixbyte.dev"
# Add the script to the staging area
+16
View File
@@ -0,0 +1,16 @@
# MariaDB — environment variables
# Copy this file to .env and adjust values for your environment.
# Root password.
# The default is for local development only — always change for production.
MARIADB_ROOT_PASSWORD=mariadb
# Database created automatically on first start (default: mariadb).
MARIADB_DATABASE=mariadb
# Additional user created automatically on first start (default: mariadb).
MARIADB_USER=mariadb
# Password for the additional user.
# The default is for local development only — always change for production.
MARIADB_PASSWORD=mariadb
+36
View File
@@ -0,0 +1,36 @@
# Docker Compose file for MariaDB
#
# Usage:
# docker compose up -d
#
# Environment variables (see .env.example for details):
# MARIADB_ROOT_PASSWORD - Root password (default: mariadb)
# MARIADB_DATABASE - Database created on first start (default: mariadb)
# MARIADB_USER - Additional user created on first start (default: mariadb)
# MARIADB_PASSWORD - Password for the additional user (default: mariadb)
services:
mariadb:
# For available image tags, see https://hub.docker.com/_/mariadb
image: mariadb:lts
container_name: mariadb
environment:
# Root password.
# Default value is for local development only — change for production.
- MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD:-mariadb}
# Database created automatically on first start.
- MARIADB_DATABASE=${MARIADB_DATABASE:-mariadb}
# Additional user created automatically on first start.
- MARIADB_USER=${MARIADB_USER:-mariadb}
# Password for the additional user.
# Default value is for local development only — change for production.
- MARIADB_PASSWORD=${MARIADB_PASSWORD:-mariadb}
ports:
# Map host port 3306 to container port 3306 (MariaDB default).
- "3306:3306"
volumes:
# Persist data beyond container lifetime.
- mariadb_data:/var/lib/mysql
volumes:
mariadb_data:
+16
View File
@@ -0,0 +1,16 @@
# MySQL (Alpine) — environment variables
# Copy this file to .env and adjust values for your environment.
# Root password.
# The default is for local development only — always change for production.
MYSQL_ROOT_PASSWORD=mysql
# Database created automatically on first start (default: mysql).
MYSQL_DATABASE=mysql
# Additional user created automatically on first start (default: root).
MYSQL_USER=root
# Password for the additional user.
# The default is for local development only — always change for production.
MYSQL_PASSWORD=mysql
+36
View File
@@ -0,0 +1,36 @@
# Docker Compose file for MySQL (Alpine)
#
# Usage:
# docker compose up -d
#
# Environment variables (see .env.example for details):
# MYSQL_ROOT_PASSWORD - Root password (default: mysql)
# MYSQL_DATABASE - Database created on first start (default: mysql)
# MYSQL_USER - Additional user created on first start (default: root)
# MYSQL_PASSWORD - Password for the additional user (default: mysql)
services:
mysql:
# For available image tags, see https://hub.docker.com/_/mysql
image: mysql:8-alpine
container_name: mysql
environment:
# Root password.
# Default value is for local development only — change for production.
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-mysql}
# Database created automatically on first start.
- MYSQL_DATABASE=${MYSQL_DATABASE:-mysql}
# Additional user created automatically on first start.
- MYSQL_USER=${MYSQL_USER:-root}
# Password for the additional user.
# Default value is for local development only — change for production.
- MYSQL_PASSWORD=${MYSQL_PASSWORD:-mysql}
ports:
# Map host port 3306 to container port 3306 (MySQL default).
- "3306:3306"
volumes:
# Persist data beyond container lifetime.
- mysql_data:/var/lib/mysql
volumes:
mysql_data:
+9
View File
@@ -0,0 +1,9 @@
# Redis (Alpine) — environment variables
# Copy this file to .env and adjust values for your environment.
# Password for client connections. By default Redis starts with no password
# (any client can connect). To require authentication:
# 1. Set REDIS_PASSWORD below
# 2. Uncomment the "command" line in docker-compose.yaml
# Clients authenticate with: AUTH <password>
# REDIS_PASSWORD=redis
+30
View File
@@ -0,0 +1,30 @@
# Docker Compose file for Redis (Alpine)
#
# Usage:
# docker compose up -d
#
# By default, Redis starts with no password — any client can connect.
# To require a password, set REDIS_PASSWORD in your .env file and uncomment
# the "command" line below. Clients must then authenticate with AUTH
# <password>.
#
# Environment variables (see .env.example for details):
# REDIS_PASSWORD - Optional password for client connections
services:
redis:
# For available image tags, see https://hub.docker.com/_/redis
image: redis:8-alpine
container_name: redis
# To enable password authentication, set REDIS_PASSWORD in your .env file
# and uncomment the following line:
# command: redis-server --requirepass ${REDIS_PASSWORD}
ports:
# Map host port 6379 to container port 6379 (Redis default).
- "6379:6379"
volumes:
# Persist data beyond container lifetime.
- redis_data:/data
volumes:
redis_data:
+9
View File
@@ -0,0 +1,9 @@
# Valkey (Alpine) — environment variables
# Copy this file to .env and adjust values for your environment.
# Password for client connections. By default Valkey starts with no password
# (any client can connect). To require authentication:
# 1. Set VALKEY_PASSWORD below
# 2. Uncomment the "command" line in docker-compose.yaml
# Clients authenticate with: AUTH <password>
# VALKEY_PASSWORD=valkey
+30
View File
@@ -0,0 +1,30 @@
# Docker Compose file for Valkey (Alpine)
#
# Usage:
# docker compose up -d
#
# By default, Valkey starts with no password — any client can connect.
# To require a password, set VALKEY_PASSWORD in your .env file and uncomment
# the "command" line below. Clients must then authenticate with AUTH
# <password>.
#
# Environment variables (see .env.example for details):
# VALKEY_PASSWORD - Optional password for client connections
services:
valkey:
# For available image tags, see https://hub.docker.com/_/valkey
image: valkey/valkey:9-alpine
container_name: valkey
# To enable password authentication, set VALKEY_PASSWORD in your .env file
# and uncomment the following line:
# command: valkey-server --requirepass ${VALKEY_PASSWORD}
ports:
# Map host port 6379 to container port 6379 (Valkey default).
- "6379:6379"
volumes:
# Persist data beyond container lifetime.
- valkey_data:/data
volumes:
valkey_data:
+9
View File
@@ -0,0 +1,9 @@
services:
vocechat:
image: privoce/vocechat-server:latest
container_name: vocechat
ports:
- "3000:3000"
volumes:
- /var/lib/vocechat/data:/home/vocechat-server/data
restart: always
+34 -3
View File
@@ -94,12 +94,19 @@ set -e
#
# Note: Starting the service requires appropriate privileges to manage system services.
#
# Installing docker-sbx
#
# Set the SBX environment variable to "1" to also install the docker-sbx
# package alongside the regular Docker Engine packages:
#
# $ curl -fsSL https://get.docker.com | sudo SBX=1 sh
#
# ==============================================================================
# Git commit from https://github.com/docker/docker-install when
# the script was uploaded (Should only be modified by upload job):
SCRIPT_COMMIT_SHA="5ce20f2eef3615d08fea941eda5a109e949e8ebf"
SCRIPT_COMMIT_SHA="2b32480025b223ebfddae9a3a8bef09027680f53"
# strip "v" prefix if present
VERSION="${VERSION#v}"
@@ -131,6 +138,18 @@ mirror=''
DRY_RUN=${DRY_RUN:-}
REPO_ONLY=${REPO_ONLY:-0}
NO_AUTOSTART=${NO_AUTOSTART:-0}
SBX=${SBX:-0}
# Provide a helpful usage statement when --help or any invalid argument is passed
# to the script. Exit code deliberately not included here as error depends on
# argument provided.
usage() {
echo
echo "USAGE: "
echo " ${0} [--channel <stable|test>] [--mirror <Aliyun|AzureChinaCloud>] [--version <VERSION>] [--setup-repo] [--no-autostart] [--dry-run] [--help]"
echo
}
while [ $# -gt 0 ]; do
case "$1" in
--channel)
@@ -155,8 +174,14 @@ while [ $# -gt 0 ]; do
--no-autostart)
NO_AUTOSTART=1
;;
--help)
usage
exit 0
;;
--*)
echo "Illegal option $1"
usage
exit 1
;;
esac
shift $(( $# > 0 ? 1 : 0 ))
@@ -540,7 +565,7 @@ do_install() {
centos.8|centos.7|rhel.7)
deprecation_notice "$lsb_dist" "$dist_version"
;;
debian.buster|debian.stretch|debian.jessie)
debian.bullseye|debian.buster|debian.stretch|debian.jessie)
deprecation_notice "$lsb_dist" "$dist_version"
;;
raspbian.buster|raspbian.stretch|raspbian.jessie)
@@ -549,7 +574,7 @@ do_install() {
ubuntu.focal|ubuntu.bionic|ubuntu.xenial|ubuntu.trusty)
deprecation_notice "$lsb_dist" "$dist_version"
;;
ubuntu.oracular|ubuntu.mantic|ubuntu.lunar|ubuntu.kinetic|ubuntu.impish|ubuntu.hirsute|ubuntu.groovy|ubuntu.eoan|ubuntu.disco|ubuntu.cosmic)
ubuntu.questing|ubuntu.oracular|ubuntu.mantic|ubuntu.lunar|ubuntu.kinetic|ubuntu.impish|ubuntu.hirsute|ubuntu.groovy|ubuntu.eoan|ubuntu.disco|ubuntu.cosmic)
deprecation_notice "$lsb_dist" "$dist_version"
;;
fedora.*)
@@ -631,6 +656,9 @@ do_install() {
if version_gte "28.2"; then
pkgs="$pkgs docker-model-plugin"
fi
if [ "$SBX" = "1" ]; then
pkgs="$pkgs docker-sbx"
fi
if ! is_dry_run; then
set -x
fi
@@ -743,6 +771,9 @@ do_install() {
if version_gte "23.0"; then
pkgs="$pkgs docker-buildx-plugin docker-model-plugin"
fi
if [ "$SBX" = "1" ]; then
pkgs="$pkgs docker-sbx"
fi
if ! is_dry_run; then
set -x
fi