139 lines
3.6 KiB
Markdown
139 lines
3.6 KiB
Markdown
# การติดตั้ง MAriaDB และ PHPMyAdmin ใน Docker
|
|
|
|
* user id ของ mariadb:
|
|
|
|
* uid=0(root) gid=0(root) groups=0(root)
|
|
|
|
## กำหนดสิทธิ
|
|
|
|
```bash
|
|
chown -R 999:999 /share/Container/mariadb/init
|
|
chmod 755 /share/Container/mariadb/init
|
|
setfacl -R -m u:999:r-x /share/Container/mariadb/init
|
|
setfacl -R -d -m u:999:r-x /share/Container/mariadb/init
|
|
|
|
chown -R 33:33 /share/Container/pma/tmp
|
|
chmod 755 /share/Container/pma/tmp
|
|
setfacl -R -m u:33:rwx /share/Container/pma/tmp
|
|
setfacl -R -d -m u:33:rwx /share/Container/pma/tmp
|
|
|
|
chown -R 33:33 /share/dms-data/logs/pma
|
|
chmod 755 /share/dms-data/logs/pma
|
|
setfacl -R -m u:33:rwx /share/dms-data/logs/pma
|
|
setfacl -R -d -m u:33:rwx /share/dms-data/logs/pma
|
|
|
|
setfacl -R -m u:1000:rwx /share/Container/gitea
|
|
setfacl -R -m u:1000:rwx /share/dms-data/gitea_repos
|
|
setfacl -R -m u:1000:rwx /share/dms-data/gitea_registry
|
|
```
|
|
|
|
## เพิ่ม database & user สำหรับ Nginx Proxy Manager (NPM)
|
|
|
|
```bash
|
|
docker exec -it mariadb mysql -u root -p
|
|
CREATE DATABASE npm;
|
|
CREATE USER 'npm'@'%' IDENTIFIED BY 'npm';
|
|
GRANT ALL PRIVILEGES ON npm.* TO 'npm'@'%';
|
|
FLUSH PRIVILEGES;
|
|
```
|
|
|
|
## เพิ่ม database & user สำหรับ Gitea
|
|
|
|
```bash
|
|
docker exec -it mariadb mysql -u root -p
|
|
CREATE DATABASE gitea CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
|
|
CREATE USER 'gitea'@'%' IDENTIFIED BY 'Center#2025';
|
|
GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'%';
|
|
FLUSH PRIVILEGES;
|
|
```
|
|
|
|
## Docker file
|
|
|
|
```yml
|
|
# File: share/Container/mariadb/docker-compose.yml
|
|
# DMS Container v1_4_1 : แยก service และ folder,Application name: lcbp3-db, Servive: mariadb, pma
|
|
x-restart: &restart_policy
|
|
restart: unless-stopped
|
|
|
|
x-logging: &default_logging
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "5"
|
|
|
|
services:
|
|
mariadb:
|
|
<<: [*restart_policy, *default_logging]
|
|
image: mariadb:11.8
|
|
container_name: mariadb
|
|
stdin_open: true
|
|
tty: true
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: "2.0"
|
|
memory: 4G
|
|
reservations:
|
|
cpus: "0.5"
|
|
memory: 1G
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: "Center#2025"
|
|
MYSQL_DATABASE: "lcbp3"
|
|
MYSQL_USER: "center"
|
|
MYSQL_PASSWORD: "Center#2025"
|
|
TZ: "Asia/Bangkok"
|
|
ports:
|
|
- "3306:3306"
|
|
volumes:
|
|
- "/share/Container/mariadb/data:/var/lib/mysql"
|
|
- "/share/Container/mariadb/my.cnf:/etc/mysql/conf.d/my.cnf:ro"
|
|
- "/share/Container/mariadb/init:/docker-entrypoint-initdb.d:ro"
|
|
- "/share/dms-data/mariadb/backup:/backup"
|
|
healthcheck:
|
|
test:
|
|
["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -pCenter#2025 || exit 1"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 15
|
|
networks:
|
|
lcbp3: {}
|
|
|
|
pma:
|
|
<<: [*restart_policy, *default_logging]
|
|
image: phpmyadmin:5-apache
|
|
container_name: pma
|
|
stdin_open: true
|
|
tty: true
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: "0.25"
|
|
memory: 256M
|
|
environment:
|
|
TZ: "Asia/Bangkok"
|
|
PMA_HOST: "mariadb"
|
|
PMA_PORT: "3306"
|
|
PMA_ABSOLUTE_URI: "https://pma.np-dms.work/"
|
|
UPLOAD_LIMIT: "1G"
|
|
MEMORY_LIMIT: "512M"
|
|
ports:
|
|
- "89:80"
|
|
# expose:
|
|
# - "80"
|
|
volumes:
|
|
- "/share/Container/pma/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php:ro"
|
|
- "/share/Container/pma/zzz-custom.ini:/usr/local/etc/php/conf.d/zzz-custom.ini:ro"
|
|
- "/share/Container/pma/tmp:/var/lib/phpmyadmin/tmp:rw"
|
|
- "/share/dms-data/logs/pma:/var/log/apache2"
|
|
depends_on:
|
|
mariadb:
|
|
condition: service_healthy
|
|
networks:
|
|
lcbp3: {}
|
|
|
|
networks:
|
|
lcbp3:
|
|
external: true
|
|
```
|