Archived
1
0

🏗️」 wip: Started re work

This commit is contained in:
2025-02-07 18:00:30 +01:00
parent 0aef0328c1
commit f48c98da5a
16 changed files with 119 additions and 118 deletions

View File

@ -0,0 +1,3 @@
FROM scratch
ADD alpine-minirootfs-3.21.2-x86_64.tar.gz /
CMD ["/bin/sh"]

View File

@ -0,0 +1,42 @@
FROM scratch
ADD docker/images/alpine/alpine-minirootfs-3.21.2-x86_64.tar.gz /
LABEL version="0.1"
LABEL maintainer="KeyZox"
RUN addgroup mysql \
&& adduser -S -G mysql mysql -h /var/lib/mysql
RUN mkdir /build
COPY go.mod /build/go.mod
COPY cmd /build/cmd
COPY internal /build/internal
RUN apk add --no-cache go mariadb tzdata mariadb-client \
&& cd /build \
&& go build git.keyzox.me/42_adjoly/inception/cmd/mariadb/entrypoint \
&& go build git.keyzox.me/42_adjoly/inception/cmd/mariadb/healthcheck \
&& cp /build/entrypoint /docker-entrypoint \
&& cp /build/healthcheck /docker-healthcheck \
&& chmod +x /docker-healthcheck \
&& chmod +x /docker-entrypoint \
&& apk del go \
&& mkdir -p /etc/mysql/conf.d /etc/mysql/mariadb.conf.d/ /run/mariadb /run/mysqld \
&& chmod ugo+rwx,o+t /run/mariadb \
&& chown -R mysql:mysql /var/lib/mysql /run/mariadb /run/mysqld \
&& rm -Rf /build \
&& rm -rf /var/cache/apk/*
ENV LANG=C.UTF-8
COPY --chmod=0644 configs/mariadb/docker.cnf /etc/my.cnf.d/mariadb-server.cnf.d
VOLUME /var/lib/mysql
ENTRYPOINT [ "/docker-entrypoint" ]
WORKDIR /var/lib/mysql
EXPOSE 3306
CMD [ "mariadbd", "--user=mysql" ]
HEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=1s --start-interval=2s CMD /docker-healthcheck

View File

@ -0,0 +1,40 @@
FROM scratch
ADD docker/images/alpine/alpine-minirootfs-3.21.2-x86_64.tar.gz /
LABEL version="0.1"
LABEL maintainer="KeyZox"
COPY go.mod /build/go.mod
COPY cmd /build/cmd
COPY internal /build/internal
RUN set -x \
&& addgroup -g 101 -S nginx\
&& adduser -S -D -H -u 101 -h /var/cache/nginx -s /sbin/nologin -G nginx -g nginx nginx \
&& apk add --no-cache go nginx openssl tzdata envsubst curl \
&& cd /build \
&& go get git.keyzox.me/42_adjoly/inception/cmd/nginx/entrypoint \
&& go build git.keyzox.me/42_adjoly/inception/cmd/nginx/entrypoint \
&& cp /build/entrypoint /docker-entrypoint \
&& chmod +x /docker-entrypoint \
&& apk del go \
&& ln -sf /dev/stdout /var/log/nginx/access.log \
&& ln -sf /dev/stderr /var/log/nginx/error.log \
&& rm -Rf /build \
&& rm -rf /var/cache/apk/* \
&& mkdir -p /var/www/html \
&& mkdir -p /etc/nginx/conf.d \
&& mkdir /docker-entrypoint.d
VOLUME /etc/nginx/templates
VOLUME /docker-entrypoint.d
COPY docker/images/nginx/health.conf /etc/nginx/http.d/health.conf
ENTRYPOINT [ "/docker-entrypoint" ]
WORKDIR /etc/nginx
STOPSIGNAL SIGQUIT
EXPOSE 80
CMD [ "nginx", "-g", "daemon off;" ]
HEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=1s --start-interval=2s CMD curl http://127.0.0.1:80/health || exit 1

View File

@ -0,0 +1,9 @@
server {
listen 127.0.0.1:80;
location /health {
access_log off;
return 200 'healthy';
add_header Content-Type text/plain;
}
}

View File

@ -0,0 +1,49 @@
FROM scratch
ADD docker/images/alpine/alpine-minirootfs-3.21.2-x86_64.tar.gz /
LABEL version="0.1"
LABEL maintainer="KeyZox"
RUN set -x \
&& adduser -u 82 -D -S -G www-data www-data
COPY go.mod /build/go.mod
COPY cmd /build/cmd
COPY internal /build/internal
COPY docker/images/wordpress/www-docker.conf /www-docker.conf
RUN apk add --no-cache go curl php84-mysqli php84-fpm tzdata fcgi \
&& cd /build \
&& go build git.keyzox.me/42_adjoly/inception/cmd/wordpress/entrypoint \
&& cp /build/entrypoint /docker-entrypoint \
&& chmod +x /docker-entrypoint \
&& apk del go \
&& rm -Rf /build \
&& mkdir -p /usr/src/wordpress
VOLUME /usr/src/wordpress
WORKDIR /usr/src
RUN version='6.7.1' \
&& curl -o wordpress.tar.gz -fL "https://wordpress.org/wordpress-$version.tar.gz" \
&& apk del curl \
&& rm -rf /var/cache/apk/* \
&& tar -xzvf wordpress.tar.gz \
&& rm wordpress.tar.gz \
&& chown -R www-data:www-data /usr/src/wordpress \
&& mkdir wp-content \
&& for dir in /usr/src/wordpress/wp-content/*/ cache; do \
dir="$(basename "${dir%/}")"; \
mkdir "wp-content/$dir"; \
done \
&& chown -R www-data:www-data wp-content \
&& chmod -R 1777 wp-content
ENTRYPOINT [ "/docker-entrypoint" ]
WORKDIR /usr/src/wordpress
STOPSIGNAL SIGQUIT
EXPOSE 9000
CMD [ "php-fpm84", "-F" ]
HEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=1s --start-interval=2s CMD cgi-fcgi -bind -connect 127.0.0.1:${PHP_PORT:-9000} || exit 1

View File

@ -0,0 +1,139 @@
<?php
/**
* The base configuration for WordPress
*
* The wp-config.php creation script uses this file during the installation.
* You don't have to use the website, you can copy this file to "wp-config.php"
* and fill in the values.
*
* This file contains the following configurations:
*
* * Database settings
* * Secret keys
* * Database table prefix
* * ABSPATH
*
* This has been slightly modified (to read environment variables) for use in Docker.
*
* @link https://developer.wordpress.org/advanced-administration/wordpress/wp-config/
*
* @package WordPress
*/
// IMPORTANT: this file needs to stay in-sync with https://github.com/WordPress/WordPress/blob/master/wp-config-sample.php
// (it gets parsed by the upstream wizard in https://github.com/WordPress/WordPress/blob/f27cb65e1ef25d11b535695a660e7282b98eb742/wp-admin/setup-config.php#L356-L392)
// a helper function to lookup "env_FILE", "env", then fallback
if (!function_exists('getenv_docker')) {
// https://github.com/docker-library/wordpress/issues/588 (WP-CLI will load this file 2x)
function getenv_docker($env, $default) {
if ($fileEnv = getenv($env . '_FILE')) {
return rtrim(file_get_contents($fileEnv), "\r\n");
}
else if (($val = getenv($env)) !== false) {
return $val;
}
else {
return $default;
}
}
}
// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', getenv_docker('WORDPRESS_DB_NAME', 'wordpress') );
/** Database username */
define( 'DB_USER', getenv_docker('WORDPRESS_DB_USER', 'example username') );
/** Database password */
define( 'DB_PASSWORD', getenv_docker('WORDPRESS_DB_PASSWORD', 'example password') );
/**
* Docker image fallback values above are sourced from the official WordPress installation wizard:
* https://github.com/WordPress/WordPress/blob/1356f6537220ffdc32b9dad2a6cdbe2d010b7a88/wp-admin/setup-config.php#L224-L238
* (However, using "example username" and "example password" in your database is strongly discouraged. Please use strong, random credentials!)
*/
/** Database hostname */
define( 'DB_HOST', getenv_docker('WORDPRESS_DB_HOST', 'mysql') );
/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', getenv_docker('WORDPRESS_DB_CHARSET', 'utf8') );
/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', getenv_docker('WORDPRESS_DB_COLLATE', '') );
/**#@+
* Authentication unique keys and salts.
*
* Change these to different unique phrases! You can generate these using
* the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}.
*
* You can change these at any point in time to invalidate all existing cookies.
* This will force all users to have to log in again.
*
* @since 2.6.0
*/
define( 'AUTH_KEY', getenv_docker('WORDPRESS_AUTH_KEY', 'put your unique phrase here') );
define( 'SECURE_AUTH_KEY', getenv_docker('WORDPRESS_SECURE_AUTH_KEY', 'put your unique phrase here') );
define( 'LOGGED_IN_KEY', getenv_docker('WORDPRESS_LOGGED_IN_KEY', 'put your unique phrase here') );
define( 'NONCE_KEY', getenv_docker('WORDPRESS_NONCE_KEY', 'put your unique phrase here') );
define( 'AUTH_SALT', getenv_docker('WORDPRESS_AUTH_SALT', 'put your unique phrase here') );
define( 'SECURE_AUTH_SALT', getenv_docker('WORDPRESS_SECURE_AUTH_SALT', 'put your unique phrase here') );
define( 'LOGGED_IN_SALT', getenv_docker('WORDPRESS_LOGGED_IN_SALT', 'put your unique phrase here') );
define( 'NONCE_SALT', getenv_docker('WORDPRESS_NONCE_SALT', 'put your unique phrase here') );
// (See also https://wordpress.stackexchange.com/a/152905/199287)
/**#@-*/
/**
* WordPress database table prefix.
*
* You can have multiple installations in one database if you give each
* a unique prefix. Only numbers, letters, and underscores please!
*
* At the installation time, database tables are created with the specified prefix.
* Changing this value after WordPress is installed will make your site think
* it has not been installed.
*
* @link https://developer.wordpress.org/advanced-administration/wordpress/wp-config/#table-prefix
*/
$table_prefix = getenv_docker('WORDPRESS_TABLE_PREFIX', 'wp_');
/**
* For developers: WordPress debugging mode.
*
* Change this to true to enable the display of notices during development.
* It is strongly recommended that plugin and theme developers use WP_DEBUG
* in their development environments.
*
* For information on other constants that can be used for debugging,
* visit the documentation.
*
* @link https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/
*/
define( 'WP_DEBUG', !!getenv_docker('WORDPRESS_DEBUG', '') );
/* Add any custom values between this line and the "stop editing" line. */
// If we're behind a proxy server and using HTTPS, we need to alert WordPress of that fact
// see also https://wordpress.org/support/article/administration-over-ssl/#using-a-reverse-proxy
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) {
$_SERVER['HTTPS'] = 'on';
}
// (we include this by default because reverse proxying is extremely common in container environments)
if ($configExtra = getenv_docker('WORDPRESS_CONFIG_EXTRA', '')) {
eval($configExtra);
}
/* That's all, stop editing! Happy publishing. */
/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', __DIR__ . '/' );
}
/** Sets up WordPress vars and included files. */
require_once ABSPATH . 'wp-settings.php';

View File

@ -0,0 +1,13 @@
[www]
user = www-data
group = www-data
listen = 0.0.0.0:$PHP_PORT
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
clear_env = no