Comments (7)
Hello @Bleala,
i have an idea. Could you please provide me some more informations on your used mariadb docker Container?
It Looks like an Environment variable is set in an other way here. There is a path in the filename… /secrets….
from backup_docker_scripts.
@alaub81
Ich werd mal in Deutsch weiterschreiben, da du laut deinem Github Profil ja Deutscher zu sein scheinst :)
Das wär der MariaDB Part in meinen Compose Files (ist immer exakt 1:1 das selbe):
(SECRETSDIR Variable wird per .env Datei gesetzt)
version: "3.9"
networks:
traefik_proxy:
external:
name: traefik_proxy
gitea:
internal: true
default:
driver: bridge
volumes:
mariadb:
name: mariadb_gitea
driver: local
secrets:
mariadb_database:
file: $SECRETSDIR/mariadb_database
mariadb_password:
file: $SECRETSDIR/mariadb_password
mariadb_root_password:
file: $SECRETSDIR/mariadb_root_password
mariadb_user:
file: $SECRETSDIR/mariadb_user
services:
mariadb:
container_name: mariadb_gitea
image: mariadb:10.6
restart: always
security_opt:
- no-new-privileges:true
networks:
- gitea
environment:
- MARIADB_DATABASE_FILE=/run/secrets/mariadb_database
- MARIADB_PASSWORD_FILE=/run/secrets/mariadb_password
- MARIADB_ROOT_PASSWORD_FILE=/run/secrets/mariadb_root_password
- MARIADB_USER_FILE=/run/secrets/mariadb_user
volumes:
- type: bind
source: $DOCKERDIR/mariadb/my.cnf
target: /etc/mysql/conf.d/my.cnf
read_only: true
- type: volume
source: mariadb
target: /var/lib/mysql
read_only: false
secrets:
- mariadb_database
- mariadb_password
- mariadb_root_password
- mariadb_user
deshalb noch komischer, da die Fehlermeldung nur bei zwei Container auftritt, bei den anderen 8 nicht, da läuft es ohne Probleme durch.
Wobei nachdem die .sql.gz Dateien nur 1KB haben und wenn man sie extrahiert nichts drinnen ist, ist dann doch auch wo ein Problem^^
from backup_docker_scripts.
Wie hast du denn im BackupScript die Container konfiguriert? Also was steht hinter CONTAINER=
?
Er scheint deinen Datenbank Namen nicht aus den Environments lesen zu können, sicher wegen der secret files. Was passiert wenn du im DB Container env
eingibst. was spuckt der hier hinter MYSQL_DATABASE
aus?
from backup_docker_scripts.
Hinter Container steht folgendes: $(docker ps --format '{{.Names}}:{{.Image}}' | grep 'mysql\|mariadb' | cut -d":" -f1)
, hab das genommen, wo dabei steht, dass alle MariaDB Container gebackupt werden.
Bei env
bekomme ich folgendes raus: MYSQL_DATABASE_FILE=/run/secrets/mariadb_database
Habs auch bei einem Container getestet wo das Backup scheinbar durchläuft, da bekomm ich genau das selbe mit env
, aber im Script keine Fehlermeldung.
Sind deswegen auch die Backups nur 1KB groß und ohne Inhalt?
from backup_docker_scripts.
Gibt es da auch einfach nur MYSQL_DATABASE=
? Wenn nein, dann funktioniert das Script den den Secret Files nicht. Müsste ich mal nachstellen um hier eine Lösung zu finden.
Das Problem kommt auf jedenfalls hier her:
MYSQL_DATABASE=$(docker exec $i env | grep MYSQL_DATABASE |cut -d"=" -f2)
hier sollte er den Datenbank Namen auslesen, den es sichern und vor allem auch im BackupNamen verwenden soll.
Falls es den anderen Wert auch gibt, ist es denke ich damit getan es so zu fixen:
MYSQL_DATABASE=$(docker exec $i env | grep "MYSQL_DATABASE=" |cut -d"=" -f2)
from backup_docker_scripts.
Nein den Wert MYSQL_DATABASE=
gibt es in der Form nicht, sind alle immer nur in dem Format: MYSQL_DATABASE_FILE=/run/secrets/mariadb_database
.
MYSQL_DATABASE=$(docker exec $i env | grep "MYSQL_DATABASE=" |cut -d"=" -f2)
funktioniert leider auch nicht, auch nicht wenn ich den Wert auf "MYSQL_DATABASE_FILE="
ändere.
Dürfte ziemlich sicher aber an den Secrets liegen, habe das Kommando mal auf mysqldump --all-databases
umgebaut und da bekommt man dann auch immer die Fehlermeldung Access denied for user 'root'@'localhost' (using password: NO)
, also kann er auch das Passwort nicht auslesen.
Denke für Docker Secrets gibt es hier keine direkte Lösung oder?
from backup_docker_scripts.
Ich habe mal ein wenig geschaut. ich denke mit den Script von mir kommst du definitiv nicht weiter. Docker Secrets gehen hier nicht. Er braucht User und Passwort zum anmelden an die Datenbank. Und die kann er scheinbar nicht auslesen.
Aber ich werde mir das in einer ruhigen minute einmal genauer anschauen. Du kannst auf jeden Fall die Datenbanken mit Docker Secrets einfach exkludieren.
from backup_docker_scripts.
Related Issues (6)
- Postgres user HOT 3
- Docker b HOT 2
- Synology NAS HOT 5
- mariadb backup HOT 2
- Video wie man das benutzt ? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from backup_docker_scripts.