1
0

」 feat: finished last containers

This commit is contained in:
2025-03-04 10:47:25 +01:00
parent 57387462cf
commit 1538afbc7b
12 changed files with 1092 additions and 4 deletions

View File

@ -1 +0,0 @@
#!/bin/sh

View File

@ -0,0 +1,16 @@
#!/bin/sh
echo ${REDIS_HOSTNAME}
if [ -f "/redis.ok" ]; then
echo "[*] redis-cache already installed and configured"
else
echo "[*] Installing redis-cache plugin"
wp --allow-root config set WP_REDIS_HOST ${REDIS_HOSTNAME}
wp --allow-root config set WP_REDIS_PORT ${REDIS_PORT}
wp --allow-root config set WP_CACHE_KEY_SALT ${WP_URL}
wp --allow-root plugin install redis-cache --activate
wp --allow-root plugin update --all
wp --allow-root redis enable
touch /redis.ok
fi

View File

@ -61,6 +61,8 @@ services:
- PHP_MEMORY_LIMIT="512M" - PHP_MEMORY_LIMIT="512M"
- PHP_MAX_UPLOAD="50M" - PHP_MAX_UPLOAD="50M"
- PHP_PORT=9000 - PHP_PORT=9000
- REDIS_HOSTNAME=redis
- REDIS_PORT=6379
- TZ=Europe/Paris - TZ=Europe/Paris
volumes: volumes:
- wp-site:/var/www/wordpress - wp-site:/var/www/wordpress
@ -86,6 +88,7 @@ services:
static-site: static-site:
build: docker/bonus/static-site build: docker/bonus/static-site
container_name: inception-kanel-supremacy
ports: ports:
- 8080:443 - 8080:443
depends_on: depends_on:
@ -100,6 +103,7 @@ services:
build: build:
context: . context: .
dockerfile: docker/bonus/borg-backup/Dockerfile dockerfile: docker/bonus/borg-backup/Dockerfile
container_name: inception-backup
networks: networks:
- inception - inception
environment: environment:
@ -121,3 +125,43 @@ services:
- wp-site:/source/wordpress - wp-site:/source/wordpress
- backup:/backup - backup:/backup
restart: unless-stopped restart: unless-stopped
adminer:
build:
context: .
dockerfile: docker/bonus/adminer/Dockerfile
container_name: inception-adminer
networks:
- inception
ports:
- 8090:8080
depends_on:
db:
condition: service_healthy
restart: unless-stopped
redis:
build:
context: .
dockerfile: docker/bonus/redis/Dockerfile
container_name: inception-redis
networks:
- inception
restart: unless-stopped
ftp:
build:
context: .
dockerfile: docker/bonus/vsftpd/Dockerfile
container_name: inception-ftp
networks:
- inception
environment:
- VSFTPD_USER=kanel
- VSFTPD_PASS=alpine
volumes:
- wp-site:/var/ftp
ports:
- 21:21
- 30000-30100:30000-30100
restart: unless-stopped

View File

@ -0,0 +1,31 @@
FROM scratch
ADD docker/alpine/alpine-minirootfs-3.21.2-x86_64.tar.gz /
LABEL version="0.1"
LABEL maintainer="KeyZox"
VOLUME /var/www/adminer
COPY docker/bonus/adminer/adminer-4.17.1-mysql.php /var/www/adminer/index.php
RUN apk update \
&& apk add php84 php84-mysqli php84-session curl \
&& addgroup -S adminer \
&& adduser -S -G adminer adminer \
&& chown -R adminer:adminer /var/www/adminer \
&& chmod 755 /var/www/adminer/index.php
RUN echo "upload_max_filesize = 128M" >> /etc/php84/conf.d/0-upload_large_dumps.ini \
&& echo "post_max_size = 128M" >> /etc/php84/conf.d/0-upload_large_dumps.ini \
&& echo "memory_limit = 1G" >> /etc/php84/conf.d/0-upload_large_dumps.ini \
&& echo "max_execution_time = 600" >> /etc/php84/conf.d/0-upload_large_dumps.ini \
&& echo "max_input_vars = 5000" >> /etc/php84/conf.d/0-upload_large_dumps.ini
WORKDIR "/var/www/adminer"
EXPOSE 8080
STOPSIGNAL SIGINT
USER adminer
CMD [ "php84", "-S", "0.0.0.0:8080", "-t", "/var/www/adminer"]
HEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=1s --start-interval=2s CMD curl -f "http://localhost:8080"

File diff suppressed because one or more lines are too long

View File

@ -17,6 +17,9 @@ RUN cd /build \
FROM scratch FROM scratch
ADD docker/alpine/alpine-minirootfs-3.21.2-x86_64.tar.gz / ADD docker/alpine/alpine-minirootfs-3.21.2-x86_64.tar.gz /
LABEL version="0.1"
LABEL maintainer="KeyZox"
RUN mkdir -p /backup \ RUN mkdir -p /backup \
&& mkdir -p /source \ && mkdir -p /source \
&& mkdir /docker-entrypoint.d \ && mkdir /docker-entrypoint.d \

View File

@ -0,0 +1,15 @@
FROM scratch
ADD docker/alpine/alpine-minirootfs-3.21.2-x86_64.tar.gz /
LABEL version="0.1"
LABEL maintainer="KeyZox"
RUN apk update \
&& apk add redis
RUN echo "maxmemory 256mb" >> /etc/redis.conf \
&& echo "maxmemory-policy allkeys-lru" >> /etc/redis.conf \
&& sed -i -r "s/bind 127.0.0.1//" /etc/redis.conf
EXPOSE 6379
CMD [ "redis-server", "--protected-mode", "no"]

View File

@ -0,0 +1,18 @@
FROM scratch
ADD docker/alpine/alpine-minirootfs-3.21.2-x86_64.tar.gz /
RUN apk add vsftpd
COPY docker/bonus/vsftpd/entry.sh /docker-entrypoint
COPY docker/bonus/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf
RUN chmod +x /docker-entrypoint
EXPOSE 21
EXPOSE 30000-30100
VOLUME /var/ftp
STOPSIGNAL SIGTERM
ENTRYPOINT [ "/docker-entrypoint" ]
CMD [ "vsftpd", "/etc/vsftpd/vsftpd.conf" ]

View File

@ -0,0 +1,28 @@
#!/bin/sh
# Environment variables:
# VSFTPD_USER: Username for the vsftpd user
# VSFTPD_PASSWORD: Password for the vsftpd user
DONE_FILE=/vsftpd.ok
if [ -f "${DONE_FILE}" ]; then
echo "[*] vsftpd already setup, skipping"
else
echo "[*] Creating vsftpd user"
adduser -D $VSFTPD_USER
echo "$VSFTPD_USER:$VSFTPD_PASS" | /usr/sbin/chpasswd > /dev/null
echo "[*] Giving vsftpd user ownership of WordPress data directory"
chown -R "$VSFTPD_USER:$VSFTPD_USER" /var/ftp
echo $VSFTPD_USER | tee -a /etc/vsftpd/vsftpd.userlist > /dev/null
touch ${DONE_FILE}
fi
mkdir /var/run/vsftpd/empty -p
echo "[*] Starting '$@'"
exec "$@"

View File

@ -0,0 +1,25 @@
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
ftpd_banner=Welcome to your WordPress FTP server.
chroot_local_user=YES
allow_writeable_chroot=YES
user_sub_token=$USER
local_root=/var/ftp
listen=YES
listen_port=21
listen_address=0.0.0.0
seccomp_sandbox=NO
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30100
userlist_enable=YES
userlist_file=/etc/vsftpd/vsftpd.userlist
userlist_deny=NO

View File

@ -44,4 +44,4 @@ WORKDIR /var/lib/mysql
EXPOSE 3306 EXPOSE 3306
CMD [ "mariadbd", "--user=mysql" ] CMD [ "mariadbd", "--user=mysql" ]
HEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=1s --start-interval=2s CMD /docker-healthcheck HEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=3s --start-interval=2s CMD /docker-healthcheck

View File

@ -29,7 +29,7 @@ RUN set -x \
php84 php84-mysqli php84-fpm php84-json \ php84 php84-mysqli php84-fpm php84-json \
php84-zlib php84-session php84-dom \ php84-zlib php84-session php84-dom \
php84-xmlreader php84-pdo php84-gd \ php84-xmlreader php84-pdo php84-gd \
php84-opcache php84-ctype \ php84-opcache php84-ctype php84-tokenizer \
&& curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \
&& chmod +x wp-cli.phar \ && chmod +x wp-cli.phar \
&& mv wp-cli.phar /usr/local/bin/wp \ && mv wp-cli.phar /usr/local/bin/wp \
@ -65,4 +65,4 @@ STOPSIGNAL SIGQUIT
EXPOSE 9000 EXPOSE 9000
CMD [ "php-fpm84", "-F" ] CMD [ "php-fpm84", "-F" ]
HEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=3s --start-interval=2s CMD cgi-fcgi -bind -connect 127.0.0.1:${PHP_PORT:-9000} || exit 1 HEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=7s --start-interval=2s CMD cgi-fcgi -bind -connect 127.0.0.1:${PHP_PORT:-9000} || exit 1