Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
07506ed53a |
55
Makefile
55
Makefile
@ -6,17 +6,60 @@
|
|||||||
# By: whaffman <whaffman@student.codam.nl> +#+ #
|
# By: whaffman <whaffman@student.codam.nl> +#+ #
|
||||||
# +#+ #
|
# +#+ #
|
||||||
# Created: 2025/05/12 15:33:56 by whaffman #+# #+# #
|
# Created: 2025/05/12 15:33:56 by whaffman #+# #+# #
|
||||||
# Updated: 2025/05/12 15:35:21 by whaffman ######## odam.nl #
|
# Updated: 2025/05/13 08:59:04 by whaffman ######## odam.nl #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
DOCKER_COMPOSE = docker compose
|
||||||
|
DOCKER_COMPOSE_FILE = ./srcs/docker-compose.yml
|
||||||
|
DC = $(DOCKER_COMPOSE) -f $(DOCKER_COMPOSE_FILE)
|
||||||
|
|
||||||
|
.PHONY: all build up down remove
|
||||||
|
|
||||||
|
all: build up
|
||||||
|
build:
|
||||||
|
@echo "$(gub)Building Docker containers...$(reset)"
|
||||||
|
$(DC) build
|
||||||
up:
|
up:
|
||||||
docker-compose up -d --build
|
@echo "$(gub)Starting Docker containers...$(reset)"
|
||||||
|
$(DC) up -d --build
|
||||||
|
|
||||||
down:
|
down:
|
||||||
docker-compose down
|
@echo "$(gub)Stopping Docker containers...$(reset)"
|
||||||
|
$(DC) down
|
||||||
|
|
||||||
remove:
|
clean:
|
||||||
docker-compose down --rmi all
|
@echo "$(gub)Cleaning up Docker containers...$(reset)"
|
||||||
@docker volume rm $(shell docker volume ls -qf dangling=true) || true
|
$(DC) down --rmi local --volumes --remove-orphans
|
||||||
|
|
||||||
|
logs:
|
||||||
|
@echo "$(gub)Displaying logs...$(reset)"
|
||||||
|
@$(DC) logs
|
||||||
|
|
||||||
|
ps:
|
||||||
|
@echo "$(gub)Displaying running containers...$(reset)"
|
||||||
|
@$(DC) ps
|
||||||
|
@echo "$(gub)Displaying networks...$(reset)"
|
||||||
|
@docker network ls
|
||||||
|
@echo "$(gub)Displaying volumes...$(reset)"
|
||||||
|
@docker volume ls
|
||||||
|
@echo "$(gub)Displaying images...$(reset)"
|
||||||
|
@docker images
|
||||||
|
@echo "$(gub)Displaying all containers...$(reset)"
|
||||||
|
@docker ps -a
|
||||||
|
|
||||||
|
|
||||||
|
remove:
|
||||||
|
@echo "$(gub)Removing Docker containers...$(reset)"
|
||||||
|
@$(DC) rm -f
|
||||||
|
@$(DC) volume rm -f
|
||||||
|
@$(DC) network rm -f
|
||||||
|
|
||||||
|
|
||||||
|
# Colors
|
||||||
|
|
||||||
|
green:=$(shell tput setaf 2)
|
||||||
|
bold:=$(shell tput bold)
|
||||||
|
uncerline:=$(shell tput smul)
|
||||||
|
gub:=$(green)$(underline)$(bold)
|
||||||
|
reset:=$(shell tput sgr0)
|
||||||
|
|||||||
@ -0,0 +1 @@
|
|||||||
|
test
|
||||||
@ -0,0 +1 @@
|
|||||||
|
test
|
||||||
@ -1,20 +1,8 @@
|
|||||||
version: '3.8'
|
name: inception
|
||||||
|
|
||||||
env_file:
|
|
||||||
- .env
|
|
||||||
|
|
||||||
secrets:
|
|
||||||
mariadb_root_password:
|
|
||||||
file: ./secrets/db_root_password
|
|
||||||
mariadb_user_password:
|
|
||||||
file: ./secrets/db_password
|
|
||||||
wordpress_admin_password:
|
|
||||||
file: ./requirements/wordpress/.env
|
|
||||||
wordpress_user_password:
|
|
||||||
file: ./requirements/wordpress/.env
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
mariadb:
|
mariadb:
|
||||||
|
container_name: mariadb
|
||||||
restart: always
|
restart: always
|
||||||
build:
|
build:
|
||||||
context: ./requirements/mariadb
|
context: ./requirements/mariadb
|
||||||
@ -25,41 +13,60 @@ services:
|
|||||||
- docker-network
|
- docker-network
|
||||||
volumes:
|
volumes:
|
||||||
- data_mariadb:/var/lib/mysql
|
- data_mariadb:/var/lib/mysql
|
||||||
|
secrets:
|
||||||
|
- mariadb_root_password
|
||||||
|
- mariadb_user_password
|
||||||
|
env_file:
|
||||||
|
- ./requirements/mariadb/.env
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
nginx:
|
# wordpress:
|
||||||
restart: always
|
# container_name: wordpress
|
||||||
build:
|
# restart: always
|
||||||
context: ./requirements/nginx
|
# build:
|
||||||
dockerfile: Dockerfile
|
# context: ./requirements/wordpress
|
||||||
ports:
|
# dockerfile: Dockerfile
|
||||||
-'443:443'
|
# depends_on:
|
||||||
networks:
|
# - mariadb
|
||||||
- docker-network
|
# ports:
|
||||||
volumes:
|
# - '9000:9000'
|
||||||
- data_wordpress:/var/www/html
|
# networks:
|
||||||
|
# - docker-network
|
||||||
wordpress:
|
# volumes:
|
||||||
restart: always
|
# - data_wordpress:/var/www/html
|
||||||
build:
|
|
||||||
context: ./requirements/wordpress
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
depends_on:
|
|
||||||
- mariadb
|
|
||||||
ports:
|
|
||||||
- '9000:9000'
|
|
||||||
networks:
|
|
||||||
- docker-network
|
|
||||||
volumes:
|
|
||||||
- data_wordpress:/var/www/html
|
|
||||||
|
|
||||||
|
# nginx:
|
||||||
|
# container_name: nginx
|
||||||
|
# restart: always
|
||||||
|
# build:
|
||||||
|
# context: ./requirements/nginx
|
||||||
|
# dockerfile: Dockerfile
|
||||||
|
# depends_on:
|
||||||
|
# - wordpress
|
||||||
|
# ports:
|
||||||
|
# - '443:443'
|
||||||
|
# networks:
|
||||||
|
# - docker-network
|
||||||
|
# volumes:
|
||||||
|
# - data_wordpress:/var/www/html
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
docker-network:
|
docker-network:
|
||||||
|
driver: bridge
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
data_mariadb:
|
data_mariadb:
|
||||||
driver: local
|
driver: local
|
||||||
data_wordpress:
|
# data_wordpress:
|
||||||
driver: local
|
# driver: local
|
||||||
|
|
||||||
|
secrets:
|
||||||
|
mariadb_root_password:
|
||||||
|
file: ../secrets/db_root_password.txt
|
||||||
|
mariadb_user_password:
|
||||||
|
file: ../secrets/db_password.txt
|
||||||
|
# wordpress_admin_password:
|
||||||
|
# file: ./requirements/wordpress/.env
|
||||||
|
# wordpress_user_password:
|
||||||
|
# file: ./requirements/wordpress/.env
|
||||||
4
srcs/requirements/mariadb/.env
Normal file
4
srcs/requirements/mariadb/.env
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
MYSQL_ROOT_PASSWORD=123456
|
||||||
|
MYSQL_DATABASE=wordpress
|
||||||
|
MYSQL_USER=wordpress
|
||||||
|
MYSQL_PASSWORD=123456
|
||||||
@ -1,3 +1,44 @@
|
|||||||
FROM alpine:3.20
|
FROM alpine:3.20
|
||||||
|
|
||||||
RUN apk add --no-cache mariadb mariadb-client
|
RUN apk update && apk upgrade && \
|
||||||
|
apk add --no-cache \
|
||||||
|
mariadb \
|
||||||
|
mariadb-client \
|
||||||
|
mariadb-server-utils && \
|
||||||
|
rm -rf /var/cache/apk/*
|
||||||
|
|
||||||
|
# Create a new user and group
|
||||||
|
RUN addgroup -S mariadb && adduser -S mariadb -G mariadb
|
||||||
|
# Create the data directory
|
||||||
|
RUN mkdir -p /var/lib/mysql && \
|
||||||
|
chown -R mariadb:mariadb /var/lib/mysql && \
|
||||||
|
chmod 700 /var/lib/mysql
|
||||||
|
# Create the socket directory
|
||||||
|
RUN mkdir -p /var/run/mysqld && \
|
||||||
|
chown -R mariadb:mariadb /var/run/mysqld && \
|
||||||
|
chmod 755 /var/run/mysqld
|
||||||
|
# Create the configuration directory
|
||||||
|
# Set the working directory
|
||||||
|
WORKDIR /var/lib/mysql
|
||||||
|
# Expose the MySQL port
|
||||||
|
EXPOSE 3306
|
||||||
|
# Set the default environment variables
|
||||||
|
|
||||||
|
# Copy the configuration file
|
||||||
|
COPY ./conf/my.cnf /etc/my.cnf
|
||||||
|
# Make the configuration file readable by the user
|
||||||
|
RUN chown mariadb:mariadb /etc/my.cnf
|
||||||
|
|
||||||
|
|
||||||
|
# Copy the entrypoint script
|
||||||
|
COPY ./tools/entrypoint.sh /usr/local/bin/entrypoint.sh
|
||||||
|
# Make the entrypoint script executable
|
||||||
|
RUN chmod +x /usr/local/bin/entrypoint.sh
|
||||||
|
# Set the default user to run the container
|
||||||
|
USER mariadb
|
||||||
|
|
||||||
|
# # Set the entrypoint script
|
||||||
|
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
|
||||||
|
# Set the default command to run when the container starts
|
||||||
|
CMD ["mysqld", "--bind-address=0.0.0.0"]
|
||||||
|
|
||||||
|
|||||||
6
srcs/requirements/mariadb/conf/my.cnf
Normal file
6
srcs/requirements/mariadb/conf/my.cnf
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[mysqld]
|
||||||
|
port = 3306
|
||||||
|
datadir = /var/lib/mysql
|
||||||
|
socket = /var/run/mysqld/mysqld.sock
|
||||||
|
skip-networking = false
|
||||||
|
bind-address = 0.0.0.0
|
||||||
32
srcs/requirements/mariadb/tools/entrypoint.sh
Normal file
32
srcs/requirements/mariadb/tools/entrypoint.sh
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
echo "Hello from mariadb entrypoint.sh"
|
||||||
|
echo db: $MYSQL_DATABASE
|
||||||
|
|
||||||
|
mysql_install_db
|
||||||
|
if [ -d "/var/lib/mysql/$MYSQL_DATABASE" ]
|
||||||
|
then
|
||||||
|
|
||||||
|
echo "Database already exists"
|
||||||
|
else
|
||||||
|
|
||||||
|
# Set root option so that connexion without root password is not possible
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#Add a root user on 127.0.0.1 to allow remote connexion
|
||||||
|
#Flush privileges allow to your sql tables to be updated automatically when you modify it
|
||||||
|
#mysql -uroot launch mysql command line client
|
||||||
|
echo "GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY '$MYSQL_ROOT_PASSWORD'; FLUSH PRIVILEGES;" | mysql -uroot
|
||||||
|
|
||||||
|
#Create database and user in the database for wordpress
|
||||||
|
|
||||||
|
echo "CREATE DATABASE IF NOT EXISTS $MYSQL_DATABASE; GRANT ALL ON $MYSQL_DATABASE.* TO '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD'; FLUSH PRIVILEGES;" | mysql -u root
|
||||||
|
|
||||||
|
#Import database in the mysql command line
|
||||||
|
# mysql -uroot -p$MYSQL_ROOT_PASSWORD $MYSQL_DATABASE < /usr/local/bin/wordpress.sql
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
exec "$@"
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
FROM alpine:3.20
|
||||||
|
|
||||||
|
RUN apk update && apk upgrade && \
|
||||||
|
apk add --no-cache \
|
||||||
|
nginx \
|
||||||
|
openssl \
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
FROM alpine:3.20
|
||||||
|
|
||||||
|
RUN apk update && apk upgrade
|
||||||
Loading…
Reference in New Issue
Block a user