mirror of
https://github.com/N0rthernL1ghts/wordpress.git
synced 2025-02-17 09:37:54 +01:00
Initial commit
This commit is contained in:
parent
6f7b90e712
commit
3a95a4ec0c
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
.idea/
|
51
Dockerfile
Normal file
51
Dockerfile
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
FROM wordpress:php7.4-fpm-alpine AS wordpress-builder
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
WORKDIR /tmp/build/rootfs
|
||||||
|
|
||||||
|
# Build root filesystem structure (overlay), and copy over neccessary files
|
||||||
|
RUN mkdir -p usr/local/bin \
|
||||||
|
&& mkdir -p usr/local/etc/php/conf.d/ \
|
||||||
|
&& mkdir -p usr/src/ \
|
||||||
|
&& mv /usr/src/wordpress usr/src/ \
|
||||||
|
&& mv /usr/local/etc/php/conf.d/error-logging.ini usr/local/etc/php/conf.d/ \
|
||||||
|
&& mv /usr/local/etc/php/conf.d/opcache-recommended.ini usr/local/etc/php/conf.d/
|
||||||
|
|
||||||
|
|
||||||
|
################################################# APP ##################################################################
|
||||||
|
FROM nlss/php-nginx
|
||||||
|
|
||||||
|
ENV APK_DEPS "zlib-dev libzip-dev libpng-dev icu-dev imagemagick-dev"
|
||||||
|
ENV APK_BUILD_DEPS "curl-dev autoconf alpine-sdk"
|
||||||
|
ENV APK_WP_CLI_DEPS "bash less mysql-client"
|
||||||
|
|
||||||
|
RUN apk add --update --no-cache ${APK_WP_CLI_DEPS} ${APK_DEPS} ${APK_BUILD_DEPS} \
|
||||||
|
&& docker-php-ext-install -j "$(nproc)" \
|
||||||
|
bcmath \
|
||||||
|
exif \
|
||||||
|
gd \
|
||||||
|
mysqli \
|
||||||
|
opcache \
|
||||||
|
zip \
|
||||||
|
intl \
|
||||||
|
&& pecl install redis apcu imagick-3.4.4 \
|
||||||
|
&& docker-php-ext-enable redis apcu imagick \
|
||||||
|
&& apk del ${APK_BUILD_DEPS} \
|
||||||
|
&& rm /tmp/* -rf
|
||||||
|
|
||||||
|
ADD rootfs /
|
||||||
|
COPY ["wp-config.php", "/var/www/html"]
|
||||||
|
COPY --from=wordpress-builder /tmp/build/rootfs /
|
||||||
|
COPY --from=wordpress:cli-php7.4 /usr/local/bin/wp /usr/local/bin/
|
||||||
|
|
||||||
|
ENV WP_CONTENT_ID 2bca7d694c6279bb79bbb642ba4305f9
|
||||||
|
ENV WP_VERSION 5.3.2
|
||||||
|
ENV WP_LOCALE en_GB
|
||||||
|
ENV CRON_ENABLED true
|
||||||
|
|
||||||
|
RUN echo "* * * * * /usr/local/bin/php /var/www/${WEB_ROOT}/wp-cron.php" >> /etc/crontabs/www-data
|
||||||
|
|
||||||
|
VOLUME ["/var/www/${WEB_ROOT}/wp-content"]
|
||||||
|
|
||||||
|
EXPOSE 80/TCP
|
16
rootfs/etc/cont-init.d/10-init-wordpress
Normal file
16
rootfs/etc/cont-init.d/10-init-wordpress
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#!/usr/bin/with-contenv bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
function wp() {
|
||||||
|
# Running as root in container is OK as long as all security implications are observed and maintained
|
||||||
|
/usr/local/bin/wp --allow-root "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "> Verifying 'Wordpress ${WP_VERSION}' installation..."
|
||||||
|
if wp core version;
|
||||||
|
then
|
||||||
|
echo "> Found 'Wordpress ${WP_VERSION}'"
|
||||||
|
else
|
||||||
|
echo "> Downloading 'Wordpress ${WP_VERSION}'..."
|
||||||
|
wp core download --locale="${WP_LOCALE}" --version="${WP_VERSION}"
|
||||||
|
fi
|
40
rootfs/etc/templates/tmpl-app-nginx.conf
Normal file
40
rootfs/etc/templates/tmpl-app-nginx.conf
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
|
||||||
|
server_name {{ getenv "VIRTUAL_HOST" | strings.ReplaceAll "," " " }};
|
||||||
|
set $base /var/www;
|
||||||
|
root $base/{{ getenv "WEB_ROOT" }};
|
||||||
|
|
||||||
|
# security
|
||||||
|
include nginxconfig.io/security.conf;
|
||||||
|
|
||||||
|
# logging
|
||||||
|
access_log /var/log/nginx/app-access.log;
|
||||||
|
error_log /var/log/nginx/app-error.log warn;
|
||||||
|
|
||||||
|
# index.php
|
||||||
|
index index.php;
|
||||||
|
|
||||||
|
# index.php fallback
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ /index.php?$query_string;
|
||||||
|
}
|
||||||
|
|
||||||
|
#Add trailing slash to */wp-admin requests.
|
||||||
|
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
|
||||||
|
|
||||||
|
# handle .php
|
||||||
|
location ~ \.php$ {
|
||||||
|
fastcgi_intercept_errors on;
|
||||||
|
include nginxconfig.io/php_fastcgi.conf;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
|
||||||
|
expires max;
|
||||||
|
log_not_found off;
|
||||||
|
}
|
||||||
|
|
||||||
|
# additional config
|
||||||
|
include nginxconfig.io/general.conf;
|
||||||
|
}
|
0
rootfs/usr/src/.gitkeep
Normal file
0
rootfs/usr/src/.gitkeep
Normal file
113
wp-config.php
Normal file
113
wp-config.php
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* The base configuration for WordPress
|
||||||
|
* Adapted for docker environment
|
||||||
|
* @author Aleksandar Puharic <xzero@elite7hackers.net>
|
||||||
|
*
|
||||||
|
* The wp-config.php creation script uses this file during the
|
||||||
|
* installation. You don't have to use the web site, you can
|
||||||
|
* copy this file to "wp-config.php" and fill in the values.
|
||||||
|
*
|
||||||
|
* This file contains the following configurations:
|
||||||
|
*
|
||||||
|
* * MySQL settings
|
||||||
|
* * Secret keys
|
||||||
|
* * Database table prefix
|
||||||
|
* * ABSPATH
|
||||||
|
*
|
||||||
|
* @link https://codex.wordpress.org/Editing_wp-config.php
|
||||||
|
*
|
||||||
|
* @package WordPress
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** Not needed behind the nginx-proxy */
|
||||||
|
define('FORCE_SSL_ADMIN', false);
|
||||||
|
define('FORCE_SSL_LOGIN', false);
|
||||||
|
|
||||||
|
/** Disable cron (will be run by system crond) */
|
||||||
|
define('DISABLE_WP_CRON', true);
|
||||||
|
|
||||||
|
/** Makes it easier to control in docker environment */
|
||||||
|
define('WP_CONTENT_DIR', $_ENV['WORDPRESS_CONTENT_DIR'] ?? (__DIR__ . '/wp-content'));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Redis Cache
|
||||||
|
*/
|
||||||
|
define('WP_REDIS_HOST', $_ENV['WORDPRESS_REDIS_HOST'] ?? null);
|
||||||
|
define('WP_CACHE', (bool)($_ENV['WORDPRESS_CACHE'] ?? false));
|
||||||
|
define('WP_CACHE_KEY_SALT', $_ENV['WORDPRESS_CACHE_KEY_SALT'] ?? null);
|
||||||
|
|
||||||
|
// ** MySQL settings - You can get this info from your web host ** //
|
||||||
|
/** The name of the database for WordPress */
|
||||||
|
define('DB_NAME', $_ENV['WORDPRESS_DB_NAME'] ?? 'wordpress');
|
||||||
|
|
||||||
|
/** MySQL database username */
|
||||||
|
define('DB_USER', $_ENV['WORDPRESS_DB_USER'] ?? 'wordpress');
|
||||||
|
|
||||||
|
/** MySQL database password */
|
||||||
|
define('DB_PASSWORD', $_ENV['WORDPRESS_DB_PASSWORD'] ?? '');
|
||||||
|
|
||||||
|
/** MySQL hostname */
|
||||||
|
define('DB_HOST', $_ENV['WORDPRESS_DB_HOST'] ?? 'localhost');
|
||||||
|
|
||||||
|
/** Database Charset to use in creating database tables. */
|
||||||
|
define('DB_CHARSET', $_ENV['WORDPRESS_DB_CHARSET'] ?? 'utf8mb4');
|
||||||
|
|
||||||
|
/** The Database Collate type. Don't change this if in doubt. */
|
||||||
|
define('DB_COLLATE', $_ENV['WORDPRESS_DB_COLLATION'] ?? '');
|
||||||
|
|
||||||
|
/**#@+
|
||||||
|
* 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', $_ENV['WORDPRESS_AUTH_KEY'] ?? '');
|
||||||
|
define('SECURE_AUTH_KEY', $_ENV['WORDPRESS_SECURE_AUTH_KEY'] ?? '');
|
||||||
|
define('LOGGED_IN_KEY', $_ENV['WORDPRESS_LOGGED_IN_KEY'] ?? '');
|
||||||
|
define('NONCE_KEY', $_ENV['WORDPRESS_NONCE_KEY'] ?? '');
|
||||||
|
define('AUTH_SALT', $_ENV['WORDPRESS_AUTH_SALT'] ?? '');
|
||||||
|
define('SECURE_AUTH_SALT', $_ENV['WORDPRESS_SECURE_AUTH_SALT'] ?? '');
|
||||||
|
define('LOGGED_IN_SALT', $_ENV['WORDPRESS_LOGGED_IN_SALT'] ?? '');
|
||||||
|
define('NONCE_SALT', $_ENV['WORDPRESS_NONCE_SALT'] ?? '');
|
||||||
|
|
||||||
|
/**#@-*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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!
|
||||||
|
*/
|
||||||
|
$table_prefix = $_ENV['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 Codex.
|
||||||
|
*
|
||||||
|
* @link https://codex.wordpress.org/Debugging_in_WordPress
|
||||||
|
*/
|
||||||
|
define('WP_DEBUG', (bool)($_ENV['WORDPRESS_DEBUG'] ?? false));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Other settings
|
||||||
|
*/
|
||||||
|
define('FS_METHOD', 'direct');
|
||||||
|
|
||||||
|
/* That's all, stop editing! Happy blogging. */
|
||||||
|
|
||||||
|
/** 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');
|
Loading…
Reference in New Issue
Block a user