utilisateur avec permissions moindre

This commit is contained in:
2025-04-08 15:18:21 +02:00
parent edd8c192f5
commit bd20356bf6
3 changed files with 29 additions and 5 deletions

View File

@@ -1,13 +1,13 @@
services:
mariadb:
image: mariadb
build:
context: images
dockerfile: SQL_Dockerfile
environment:
MARIADB_USER: laravel_user
MARIADB_PASSWORD: super_strong_password
MARIADB_ROOT_PASSWORD: super_strong_password_of_root
MARIADB_DATABASE: laravel_db
volumes:
- ./sqldata:/var/lib/mysql
- laravel_db_volume:/var/lib/mysql
laravel:
image: bitnami/laravel
@@ -19,4 +19,6 @@ services:
LARAVEL_DATABASE_NAME: laravel_db
volumes:
- ./laravel:/app
volumes:
laravel_db_volume:

19
images/SQL_Dockerfile Normal file
View File

@@ -0,0 +1,19 @@
FROM mariadb:latest as builder
COPY db_init.sql /docker-entrypoint-initdb.d/
# That file does the DB initialization but also runs mysql daemon, by removing the last line it will only init
RUN ["sed", "-i", "s/exec \"$@\"/echo \"not running $@\"/", "/usr/local/bin/docker-entrypoint.sh"]
ENV MARIADB_USER=root
ENV MARIADB_ROOT_PASSWORD=super_strong_password
# Need to change the datadir to something else that /var/lib/mysql because the parent docker file defines it as a volume.
# https://docs.docker.com/engine/reference/builder/#volume :
# Changing the volume from within the Dockerfile: If any build steps change the data within the volume after
# it has been declared, those changes will be discarded.
RUN ["/usr/local/bin/docker-entrypoint.sh", "mariadbd", "--datadir", "/initialized-db", "--aria-log-dir-path", "/initialized-db"]
FROM mariadb:latest
COPY --from=builder /initialized-db /var/lib/mysql

3
images/db_init.sql Normal file
View File

@@ -0,0 +1,3 @@
CREATE USER laravel_user IDENTIFIED BY 'super_strong_password';
GRANT CREATE, ALTER, DROP, SELECT, INSERT, UPDATE, DELETE ON laravel_db.* TO laravel_user;