From d82f107bd6bdc4de6729ea2dfc7ffca6267057d7 Mon Sep 17 00:00:00 2001 From: adjoly Date: Sat, 1 Mar 2025 17:38:17 +0100 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=F0=9F=8F=97=EF=B8=8F=E3=80=8D=20wip:?= =?UTF-8?q?=20Started=20ftp=20docker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- srcs/cmd/mariadb/entrypoint/entrypoint.go | 1 + srcs/cmd/nginx/entrypoint/entrypoint.go | 1 + srcs/cmd/vsftpd/entrypoint/entrypoint.go | 47 +++++++++++++++++++++ srcs/cmd/wordpress/entrypoint/entrypoint.go | 2 +- srcs/docker/bonus/compose.yml | 11 +++++ srcs/docker/bonus/static-site/Dockerfile | 1 - srcs/docker/bonus/vsftpd/Dockerfile | 11 +++++ srcs/docker/bonus/vsftpd/vsftpd.conf | 25 +++++++++++ 8 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 srcs/cmd/vsftpd/entrypoint/entrypoint.go create mode 100644 srcs/docker/bonus/vsftpd/Dockerfile create mode 100644 srcs/docker/bonus/vsftpd/vsftpd.conf diff --git a/srcs/cmd/mariadb/entrypoint/entrypoint.go b/srcs/cmd/mariadb/entrypoint/entrypoint.go index 59ebaf4..5bf8349 100644 --- a/srcs/cmd/mariadb/entrypoint/entrypoint.go +++ b/srcs/cmd/mariadb/entrypoint/entrypoint.go @@ -200,6 +200,7 @@ func main() { } cmd := exec.Command(args[1], args[2:]...) + cmd.Env = os.Environ() cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr cmd.Stdin = os.Stdin diff --git a/srcs/cmd/nginx/entrypoint/entrypoint.go b/srcs/cmd/nginx/entrypoint/entrypoint.go index 16ea957..2b76a61 100644 --- a/srcs/cmd/nginx/entrypoint/entrypoint.go +++ b/srcs/cmd/nginx/entrypoint/entrypoint.go @@ -165,6 +165,7 @@ func main() { _log.Log("note", "Starting NGINX") } cmd := exec.Command(args[1], args[2:]...) + cmd.Env = os.Environ() cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr cmd.Stdin = os.Stdin diff --git a/srcs/cmd/vsftpd/entrypoint/entrypoint.go b/srcs/cmd/vsftpd/entrypoint/entrypoint.go new file mode 100644 index 0000000..553166a --- /dev/null +++ b/srcs/cmd/vsftpd/entrypoint/entrypoint.go @@ -0,0 +1,47 @@ +package main + +import ( + "os" + + "fmt" + "log" + "os/exec" + + _log "git.keyzox.me/42_adjoly/inception/internal/log" +) + +func main() { + args := os.Args + + if args[1] == "vsftpd" { + _log.Log("note", "Entrypoint script for VSFTPD Server started") + + dir, err := os.ReadDir("/docker-entrypoint.d") + if err != nil { + log.Fatal(err) + } + _log.Log("note", "Running entrypoint scripts") + for _, v := range dir { + os.Chmod("/docker-entrypoint.d/"+v.Name(), 0755) + cmd := exec.Command("/docker-entrypoint.d/" + v.Name()) + cmd.Env = os.Environ() + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + cmd.Stdin = os.Stdin + if err := cmd.Run(); err != nil { + fmt.Printf("Error running script(%s): %v\n", v.Name(), err) + os.Exit(1) + } + } + } + cmd := exec.Command(args[1], args[2:]...) + cmd.Env = os.Environ() + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + cmd.Stdin = os.Stdin + if err := cmd.Run(); err != nil { + fmt.Printf("Error running NGINX: %v\n", err) + os.Exit(1) + } + +} diff --git a/srcs/cmd/wordpress/entrypoint/entrypoint.go b/srcs/cmd/wordpress/entrypoint/entrypoint.go index df27f1a..bfcd047 100644 --- a/srcs/cmd/wordpress/entrypoint/entrypoint.go +++ b/srcs/cmd/wordpress/entrypoint/entrypoint.go @@ -70,9 +70,9 @@ func main() { _log.Log("note", "Starting container") cmd := exec.Command(args[1], args[2:]...) + cmd.Env = os.Environ() cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr - cmd.Env = os.Environ() cmd.Stdin = os.Stdin if err := cmd.Run(); err != nil { fmt.Printf("Error running MariaDB: %v\n", err) diff --git a/srcs/docker/bonus/compose.yml b/srcs/docker/bonus/compose.yml index 103b1ef..d8c07ea 100644 --- a/srcs/docker/bonus/compose.yml +++ b/srcs/docker/bonus/compose.yml @@ -9,3 +9,14 @@ services: - TZ=Europe/Paris - NGINX_SSL_KEY_FILE=/etc/nginx/ssl/kanel-wp.key - NGINX_SSL_CERT_FILE=/etc/nginx/ssl/kanel-wp.crt + ftp: + build: vsftp + ports: + - 2100:21 + - 30000-30100:30000-30100 + depends_on: + nginx: + condition: service_started + wordpress-php: + condition: service_healthy + diff --git a/srcs/docker/bonus/static-site/Dockerfile b/srcs/docker/bonus/static-site/Dockerfile index b3f5fe1..e04f2dc 100644 --- a/srcs/docker/bonus/static-site/Dockerfile +++ b/srcs/docker/bonus/static-site/Dockerfile @@ -2,7 +2,6 @@ FROM inception-nginx LABEL maintainer="KeyZox" - COPY kanelovh/ /var/www/html/ COPY --chmod=644 www.conf.template /etc/nginx/templates/www.conf.template COPY --chmod=644 cert.sh /docker-entrypoint.d/ diff --git a/srcs/docker/bonus/vsftpd/Dockerfile b/srcs/docker/bonus/vsftpd/Dockerfile new file mode 100644 index 0000000..9f1580a --- /dev/null +++ b/srcs/docker/bonus/vsftpd/Dockerfile @@ -0,0 +1,11 @@ +FROM inception-nginx + +LABEL maintainer="KeyZox" +LABEL version="0.1" + +RUN apk add vsftpd + +EXPOSE 21 +EXPOSE 30000-30100 + +CMD [ "vsftpd" ] diff --git a/srcs/docker/bonus/vsftpd/vsftpd.conf b/srcs/docker/bonus/vsftpd/vsftpd.conf new file mode 100644 index 0000000..b7e21eb --- /dev/null +++ b/srcs/docker/bonus/vsftpd/vsftpd.conf @@ -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/www/wordpress + +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