mirror of
https://git.sindominio.net/estibadores/wordpress.git
synced 2024-11-24 19:41:07 +01:00
First steps
This commit is contained in:
commit
bf89bdbe8c
30
Dockerfile
Normal file
30
Dockerfile
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
FROM registry.sindominio.net/nginx-php
|
||||||
|
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get -qy install --no-install-recommends \
|
||||||
|
gnupg ca-certificates less \
|
||||||
|
php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip php-redis && \
|
||||||
|
apt-get clean && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# install wp-cli
|
||||||
|
ADD https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar /usr/local/bin/wp
|
||||||
|
RUN chmod +rx /usr/local/bin/wp
|
||||||
|
|
||||||
|
# verify wp-cli signature
|
||||||
|
COPY wp-key.asc /key.asc
|
||||||
|
ADD https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar.asc /wp.asc
|
||||||
|
RUN gpg --import /key.asc && \
|
||||||
|
gpg --verify /wp.asc /usr/local/bin/wp
|
||||||
|
|
||||||
|
RUN mkdir /app
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# install wordpress
|
||||||
|
RUN wp --allow-root core download
|
||||||
|
ADD wp-config.php /app/
|
||||||
|
# TODO: install themes and plugins
|
||||||
|
|
||||||
|
VOLUME /app/wp-content/uploads
|
||||||
|
|
||||||
|
ADD setup /etc/setup
|
18
README.md
Normal file
18
README.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# container image of WordPress
|
||||||
|
|
||||||
|
```
|
||||||
|
$ mkdir uploads db
|
||||||
|
$ cp env.sample .env
|
||||||
|
$ vim .env
|
||||||
|
```
|
||||||
|
|
||||||
|
Customize parameters
|
||||||
|
|
||||||
|
## Custom themes or pluggins
|
||||||
|
|
||||||
|
To include custom themes or pluggins mount them directly into /app/wp-content/:
|
||||||
|
```
|
||||||
|
volumes:
|
||||||
|
- ./uploads:/app/wp-content/uploads
|
||||||
|
- ./mytheme:/app/wp-content/themes/mytheme
|
||||||
|
```
|
38
docker-compose.yml
Normal file
38
docker-compose.yml
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
version: '2.4'
|
||||||
|
|
||||||
|
services:
|
||||||
|
db:
|
||||||
|
# TODO: fix our mariadb container
|
||||||
|
#image: registry.sindominio.net/mariadb
|
||||||
|
image: mysql
|
||||||
|
user: "$USER_GROUP"
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ./db:/var/lib/mysql
|
||||||
|
environment:
|
||||||
|
- MYSQL_RANDOM_ROOT_PASSWORD=1
|
||||||
|
- MYSQL_DATABASE
|
||||||
|
- MYSQL_USER
|
||||||
|
- MYSQL_PASSWORD
|
||||||
|
|
||||||
|
wordpress:
|
||||||
|
image: registry.sindominio.net/wordpress
|
||||||
|
user: "$USER_GROUP"
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
volumes:
|
||||||
|
- ./uploads:/app/wp-content/uploads
|
||||||
|
ports:
|
||||||
|
- 8080:8080
|
||||||
|
environment:
|
||||||
|
- MYSQL_HOST=db
|
||||||
|
- MYSQL_DATABASE
|
||||||
|
- MYSQL_USER
|
||||||
|
- MYSQL_PASSWORD
|
||||||
|
- WP_USER
|
||||||
|
- WP_PASS
|
||||||
|
- WP_EMAIL
|
||||||
|
- WP_TITLE
|
||||||
|
- WP_URL
|
||||||
|
|
11
env.sample
Normal file
11
env.sample
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
MYSQL_DATABASE=wordpress
|
||||||
|
MYSQL_USER=wordpress
|
||||||
|
MYSQL_PASSWORD=wordpress
|
||||||
|
|
||||||
|
USER_GROUP=1000:1000
|
||||||
|
|
||||||
|
WP_USER=admin
|
||||||
|
WP_PASS=admin
|
||||||
|
WP_EMAIL=real@mail.org
|
||||||
|
WP_TITLE=Wordpress Title
|
||||||
|
WP_URL=http://docker:8080
|
15
setup
Executable file
15
setup
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
export WORDPRESS_ROOT=/app
|
||||||
|
WP_CLI="/usr/local/bin/wp --allow-root --path=$WORDPRESS_ROOT"
|
||||||
|
|
||||||
|
# TODO: wait for the DB to be ready
|
||||||
|
sleep 10
|
||||||
|
|
||||||
|
if ! $WP_CLI core is-installed; then
|
||||||
|
echo "Install Wordpress"
|
||||||
|
$WP_CLI core install --url="$WP_URL" --title="$WP_TITLE" --admin_user="$WP_USER" --admin_password="$WP_PASS" --admin_email="$WP_EMAIL"
|
||||||
|
else
|
||||||
|
echo "Update DB"
|
||||||
|
$WP_CLI core update-db
|
||||||
|
fi
|
8
version
Executable file
8
version
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# https://codex.wordpress.org/WordPress.org_API
|
||||||
|
WP=`curl -s https://api.wordpress.org/core/version-check/1.7/ |jq -r '.offers[0].version'`
|
||||||
|
|
||||||
|
WP_CLI=`curl -s https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar |sha256sum |awk '{ print $1 }'`
|
||||||
|
|
||||||
|
echo "$WP:$WP_CLI"
|
134
wp-config.php
Normal file
134
wp-config.php
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
<?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 web site, 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://wordpress.org/support/article/editing-wp-config-php/
|
||||||
|
*
|
||||||
|
* @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('MYSQL_DATABASE', 'wordpress') );
|
||||||
|
|
||||||
|
/** Database username */
|
||||||
|
define( 'DB_USER', getenv_docker('MYSQL_USER', 'example username') );
|
||||||
|
|
||||||
|
/** Database password */
|
||||||
|
define( 'DB_PASSWORD', getenv_docker('MYSQL_PASSWORD', 'example password') );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Docker image fallback values above are sourced from the official WordPress installation wizard:
|
||||||
|
* https://github.com/WordPress/WordPress/blob/f9cc35ebad82753e9c86de322ea5c76a9001c7e2/wp-admin/setup-config.php#L216-L230
|
||||||
|
* (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('MYSQL_HOST', 'mysql') );
|
||||||
|
|
||||||
|
/** Database charset to use in creating database tables. */
|
||||||
|
define( 'DB_CHARSET', 'utf8');
|
||||||
|
|
||||||
|
/** The database collate type. Don't change this if in doubt. */
|
||||||
|
define( '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
|
||||||
|
*/
|
||||||
|
// We use only database stored authentication keys
|
||||||
|
// this might be problematic: https://wordpress.stackexchange.com/a/152905/199287
|
||||||
|
define( 'AUTH_KEY', 'very secret key');
|
||||||
|
define( 'SECURE_AUTH_KEY', 'very secret key');
|
||||||
|
define( 'LOGGED_IN_KEY', 'very secret key');
|
||||||
|
define( 'NONCE_KEY', 'very secret key');
|
||||||
|
define( 'AUTH_SALT', 'very secret key');
|
||||||
|
define( 'SECURE_AUTH_SALT', 'very secret key');
|
||||||
|
define( 'LOGGED_IN_SALT', 'very secret key');
|
||||||
|
define( 'NONCE_SALT', 'very secret key');
|
||||||
|
|
||||||
|
/**#@-*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 = '';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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://wordpress.org/support/article/debugging-in-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';
|
30
wp-key.asc
Normal file
30
wp-key.asc
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
mQENBFsQEBkBCADfGAhxQ71XaIk31SjD8dNH3uVNtPh/2SIIhYbObMvEG6uoMucP
|
||||||
|
t3jCsnkh/veKBkJ+HJ/XcARGoFYdaCZo5PTORBWOwHmeWPbu7aiAM4v3EKPc8wZP
|
||||||
|
jabtEejwZrRFlSlAu5YL25ldz5KNgvGOBdje9jUi2iovQ4lfjMEuH2sXhmDQPbDW
|
||||||
|
22Fb2xinvmlnyf5kJn9ADiWm6VEnaNvaL96TCC1iUrMJmYI0m29j2sVbKJIq8ZBO
|
||||||
|
CgtY4llPC7QskWw8VXEAq2WnQeZMVLqxOSoRDy/qUvw0RR+DfiXsrHjBxAH4uvHK
|
||||||
|
zUdnMl1Qbh2A/rfcsIaJubXg5pUXwF7TCvSPABEBAAG0JVdQLUNMSSBSZWxlYXNl
|
||||||
|
cyA8cmVsZWFzZXNAd3AtY2xpLm9yZz6JAU4EEwEIADgCGwMFCwkIBwIGFQgJCgsC
|
||||||
|
BBYCAwECHgECF4AWIQRjr3qhUGfAVhb93YijoujyJvC8BgUCWxAQ7AAKCRCjoujy
|
||||||
|
JvC8BmYTCACPEYQr89U/H/iQcI012UaOSLYLx+Qj9oA7p9gv2mZSBHNSijzhnizo
|
||||||
|
QBEg7q7BXF8B8UqL9ZhUWfG9PiR8kkFbBN1sIY0RM5cFltb3cJthVH4ZV8SUiGW6
|
||||||
|
zIOd8m5JXVnekmZyJFpufxDHms6F3Z2RNUbdZSp2Mj+5p/a4GtJhfGGpfYBbXOxG
|
||||||
|
gdx5dmipjlxfP5M3YL4QCJoySB+sY92de5b3S3tqmj7ldb/GRvN/7XjoMDwbRso6
|
||||||
|
jrhGtk8TjtAV0l/VdjebpI6zivrDLYDQq5vwi6hGPl7k88ElU47vaJiJX5yXaJ/k
|
||||||
|
LFQ3g8raFQq69nqcDjJLGds+Y+lAXrtzuQENBFsQEBkBCAC9ZUHiXbBLvCejMXKK
|
||||||
|
vFpKaVsovI6RBU8l0sC+00yvpP+TJmRXracnesTqHyTlhAUMhpbFvG0mBMBdROt5
|
||||||
|
IPRZ2S9JdJKZFVqO7Nop0elO8wUe6rsEHisUbEP49BcqDHGxfEnB/MubnJO1hHEH
|
||||||
|
1ftnZBEQW3jNagOTikki9675qF4ONvaSeCY9DkHa4lbau24SzePvtWuxYGsdX+Jf
|
||||||
|
ikFxq8N2ArPlSoVv/DKEbl5dgz1hYFJ9qBKoXSbaKk1TxZ4bA8nxcznZHS+8Lirv
|
||||||
|
tEjB8Z68Hz+pXIFJBbchC/FMatZC2hjFobedc4dT3nxf5iiH9XsHI5bqp3UEsPlx
|
||||||
|
8LP5ABEBAAGJATYEGAEIACACGwwWIQRjr3qhUGfAVhb93YijoujyJvC8BgUCWxAR
|
||||||
|
IQAKCRCjoujyJvC8BhGMCACkNhkshrOYDRoOwny8m1mI2nSIU0KnjEruaeAXrY2T
|
||||||
|
5VHNfLkTX3wD2HYO97r1CvUNBUWpmTwSicK0Z6TCDp4A9Oi+z5CA/5zBT/iydC6E
|
||||||
|
czNAPUehdLKka9Qs0vrVq22S0dDiA4xXZUvQpoo8VUKlvau9igF98mbd56U89s3L
|
||||||
|
gg7O72A/4x7rhDO0Q+U8SIBJtFmEHIcu6gHkooQW3d7opHKCjbnyqxDQ/iUY3b8o
|
||||||
|
n75TXnDJWbjCFTiTMyVTeyQfK0Us8FbJNXhMMagalRQu/sBH56S7Cg2OLciQB1B2
|
||||||
|
sLbhbfYDXYriI/OGVIPvCEIH6FX4+KiFy7RS+0JthI0R
|
||||||
|
=fQDM
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
Loading…
Reference in New Issue
Block a user