add: wordpress docker
This commit is contained in:
parent
2484c20af5
commit
aa2a0d6f71
11 changed files with 137 additions and 159 deletions
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
__*
|
||||||
|
.__*
|
71
Makefile
71
Makefile
|
@ -1,11 +1,14 @@
|
||||||
# TODO(vm) data is supposed to be in $HOME/data/
|
# TODO(vm) data is supposed to be in $HOME/data/
|
||||||
|
|
||||||
|
WWW_PATH=__www/ # TODO to change
|
||||||
|
BUILD_PATH=__build/
|
||||||
|
|
||||||
DOCKER=docker
|
DOCKER=docker
|
||||||
SRC_COMPOSE=srcs/
|
SRC_COMPOSE=srcs/
|
||||||
|
|
||||||
.ONESHELL :
|
.ONESHELL :
|
||||||
.SHELLFLAGS = -eu -c
|
.SHELLFLAGS = -eu -c
|
||||||
.PHONY : run help
|
.PHONY : run install uninstall debug re help shell
|
||||||
|
|
||||||
### pretty logs ####
|
### pretty logs ####
|
||||||
|
|
||||||
|
@ -19,25 +22,71 @@ _ECHO = echoo(){ \
|
||||||
|
|
||||||
|
|
||||||
## Run the compose.
|
## Run the compose.
|
||||||
run :
|
run : $(WWW_PATH)
|
||||||
@$(_ECHO)
|
@$(_ECHO)
|
||||||
|
|
||||||
echoo "Running '$(SRC_COMPOSE)'..."
|
echoo "Running '$(SRC_COMPOSE)'..."
|
||||||
echo "$ cd -- $(SRC_COMPOSE)"
|
|
||||||
cd -- $(SRC_COMPOSE)
|
cd -- $(SRC_COMPOSE)
|
||||||
echo "$ $(DOCKER) compose up --build"
|
INCEPTION_WWW_PATH="$(shell realpath $(WWW_PATH))" $(DOCKER) compose up --build
|
||||||
$(DOCKER) compose up --build
|
|
||||||
|
|
||||||
|
|
||||||
## Run the compose with debug flags.
|
## Create WWW_PATH from wordpress' release.
|
||||||
debug :
|
install : $(WWW_PATH)
|
||||||
$(MAKE) DEBUG=yes run
|
|
||||||
|
|
||||||
|
$(WWW_PATH) :
|
||||||
|
@$(_ECHO)
|
||||||
|
|
||||||
|
echoo "Creating $(WWW_PATH) directory from wordpress release..."
|
||||||
|
|
||||||
|
rm -rf $(BUILD_PATH)
|
||||||
|
|
||||||
|
# download and uncompress release
|
||||||
|
mkdir -p $(BUILD_PATH)"/www/"
|
||||||
|
curl https://wordpress.org/latest.tar.gz | tar zx -C $(BUILD_PATH)/www
|
||||||
|
|
||||||
|
# move in WWW_PATH
|
||||||
|
rm -rf -- $(WWW_PATH)
|
||||||
|
mv $(BUILD_PATH)"/www/wordpress" $(WWW_PATH)
|
||||||
|
|
||||||
|
rm -rf $(BUILD_PATH)
|
||||||
|
|
||||||
|
|
||||||
|
## Remove WWW_PATH.
|
||||||
|
uninstall :
|
||||||
|
@$(_ECHO)
|
||||||
|
|
||||||
|
echoo "Removing $(WWW_PATH)..."
|
||||||
|
rm -r $(WWW_PATH) || true
|
||||||
|
|
||||||
|
|
||||||
|
## 'uninstall' then 'install'
|
||||||
|
re : uninstall install
|
||||||
|
@$(_ECHO)
|
||||||
|
echo
|
||||||
|
echo "run \`make\` or \`make run\` to run the docker."
|
||||||
|
|
||||||
|
|
||||||
|
## TODO docs
|
||||||
|
shell :
|
||||||
|
@$(_ECHO)
|
||||||
|
|
||||||
|
echoo "Running shell inside '$(SRC_COMPOSE)' (container nginx)..."
|
||||||
|
cd -- $(SRC_COMPOSE)
|
||||||
|
INCEPTION_WWW_PATH="$(shell realpath $(WWW_PATH))" $(DOCKER) compose run --build nginx sh
|
||||||
|
|
||||||
|
|
||||||
## Show help
|
## Show help
|
||||||
help :
|
help :
|
||||||
@$(_ECHO)
|
@$(_ECHO)
|
||||||
|
|
||||||
echo "run Run the compose."
|
echo
|
||||||
echo "debug Run the compose with debug flags."
|
echo "run Run the compose, install WWW_PATH if necessary."
|
||||||
echo "That's all lol"
|
echo "install Create WWW_PATH from wordpress' release."
|
||||||
|
echo "uninstall Remove WWW_PATH."
|
||||||
|
echo "re 'uninstall' then 'install'."
|
||||||
|
# TODO docs shell
|
||||||
|
echo
|
||||||
|
echo "WWW_PATH is the volume directory where WordPress is installed."
|
||||||
|
echo "you might want to reset the WWW_PATH variable in the Makefile."
|
||||||
|
echo
|
||||||
|
|
|
@ -6,8 +6,25 @@ services:
|
||||||
build: ./requirements/nginx/
|
build: ./requirements/nginx/
|
||||||
ports:
|
ports:
|
||||||
- 4433:443
|
- 4433:443
|
||||||
|
depends_on:
|
||||||
|
- wordpress
|
||||||
|
volumes:
|
||||||
|
- www:/www:ro
|
||||||
# domainname: mcolonna.42.fr # TODO(vm) useful? # TODO(any)(nocopy)
|
# domainname: mcolonna.42.fr # TODO(vm) useful? # TODO(any)(nocopy)
|
||||||
|
|
||||||
|
wordpress:
|
||||||
|
build: ./requirements/wordpress
|
||||||
|
volumes:
|
||||||
|
- www:/www:rw
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
www:
|
||||||
|
driver: local
|
||||||
|
driver_opts:
|
||||||
|
o: bind
|
||||||
|
type: none
|
||||||
|
device: "${INCEPTION_WWW_PATH:?error}"
|
||||||
|
|
||||||
### services ###
|
### services ###
|
||||||
# image:
|
# image:
|
||||||
# build:
|
# build:
|
||||||
|
|
|
@ -26,8 +26,6 @@ RUN apk fix
|
||||||
# add config
|
# add config
|
||||||
RUN rm /etc/nginx/nginx.conf
|
RUN rm /etc/nginx/nginx.conf
|
||||||
COPY conf/ /etc/nginx/
|
COPY conf/ /etc/nginx/
|
||||||
RUN rm -r /usr/share/nginx/html
|
|
||||||
COPY www/ /usr/share/nginx/html
|
|
||||||
|
|
||||||
# start
|
# start
|
||||||
CMD ["nginx", "-g", "daemon off;"]
|
CMD ["nginx", "-g", "daemon off;"]
|
||||||
|
|
|
@ -35,12 +35,16 @@ http {
|
||||||
access_log /var/log/nginx/mcolonna.42.fr.access.log main;
|
access_log /var/log/nginx/mcolonna.42.fr.access.log main;
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
root /usr/share/nginx/html;
|
root /www;
|
||||||
index index.html index.htm;
|
index index.php;
|
||||||
|
|
||||||
|
location ~ \.php$ {
|
||||||
|
include snippets/fastcgi-php.conf;
|
||||||
|
fastcgi_pass wordpress:9000;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# TODO(more) error_page 404 /404.html;
|
# TODO(more) error_page 404 /404.html;
|
||||||
# TODO(more) error_page 500 502 503 504 /50x.html;
|
# TODO(more) error_page 500 502 503 504 /50x.html;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
15
srcs/requirements/nginx/conf/snippets/fastcgi-php.conf
Normal file
15
srcs/requirements/nginx/conf/snippets/fastcgi-php.conf
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
# from https://exampleconfig.com/view/nginx-ubuntu20-04-etc-nginx-snippets-fastcgi-php-conf
|
||||||
|
|
||||||
|
# regex to split $uri to $fastcgi_script_name and $fastcgi_path
|
||||||
|
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
|
||||||
|
|
||||||
|
# Check that the PHP script exists before passing it
|
||||||
|
try_files $fastcgi_script_name =404;
|
||||||
|
|
||||||
|
# Bypass the fact that try_files resets $fastcgi_path_info
|
||||||
|
# see: http://trac.nginx.org/nginx/ticket/321
|
||||||
|
set $path_info $fastcgi_path_info;
|
||||||
|
fastcgi_param PATH_INFO $path_info;
|
||||||
|
|
||||||
|
fastcgi_index index.php;
|
||||||
|
include fastcgi.conf;
|
Binary file not shown.
|
@ -1,143 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<title>yippee</title>
|
|
||||||
<style>
|
|
||||||
|
|
||||||
* {
|
|
||||||
animation-play-state: paused;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face
|
|
||||||
{
|
|
||||||
font-family: "Varela Round";
|
|
||||||
src: url("/VarelaRound.ttf");
|
|
||||||
}
|
|
||||||
|
|
||||||
html {
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
height: 100%;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
background: #000000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.yippee {
|
|
||||||
font-size: 3em;
|
|
||||||
font-family: "Varela Round";
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes rotationoeoeoe {
|
|
||||||
0% { transform: rotate(0); }
|
|
||||||
100% { transform: rotate(360deg); }
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes pulseyayaya {
|
|
||||||
0% { transform: scale(1); }
|
|
||||||
50% { transform: scale(1.4); }
|
|
||||||
100% { transform: scale(1); }
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes rainbow {
|
|
||||||
0% { color: #f00; }
|
|
||||||
17% { color: #f00; }
|
|
||||||
17% { color: #ff0; }
|
|
||||||
33% { color: #ff0; }
|
|
||||||
33% { color: #0f0; }
|
|
||||||
50% { color: #0f0; }
|
|
||||||
50% { color: #0ff; }
|
|
||||||
67% { color: #0ff; }
|
|
||||||
67% { color: #00f; }
|
|
||||||
83% { color: #00f; }
|
|
||||||
83% { color: #f0f; }
|
|
||||||
100% { color: #f0f; }
|
|
||||||
100% { color: #f00; }
|
|
||||||
}
|
|
||||||
|
|
||||||
.yippee {
|
|
||||||
animation-name: rotationoeoeoe;
|
|
||||||
animation-duration: 1s;
|
|
||||||
animation-timing-function: linear;
|
|
||||||
animation-iteration-count: infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
.yippee > .yippeeinner {
|
|
||||||
animation-name: pulseyayaya;
|
|
||||||
animation-duration: .8s;
|
|
||||||
animation-timing-function: ease-in-out;
|
|
||||||
animation-iteration-count: infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
#one, #two, #three {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
position: absolute;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
animation-name: rainbow;
|
|
||||||
animation-duration: 1s;
|
|
||||||
animation-iteration-count: infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
#one {
|
|
||||||
z-index: 3;
|
|
||||||
color: #f00;
|
|
||||||
animation-delay: .0s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#one > .yippee {
|
|
||||||
animation-delay: .0s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#one > .yippee > .yippeeinner {
|
|
||||||
animation-delay: .0s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#two {
|
|
||||||
z-index: 2;
|
|
||||||
color: #0f0;
|
|
||||||
opacity: .50;
|
|
||||||
animation-delay: .1s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#two > .yippee {
|
|
||||||
animation-delay: .05s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#two > .yippee > .yippeeinner {
|
|
||||||
animation-delay: .05s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#three {
|
|
||||||
z-index: 1;
|
|
||||||
color: #00f;
|
|
||||||
opacity: .33;
|
|
||||||
animation-delay: .2s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#three > .yippee {
|
|
||||||
animation-delay: .1s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#three > .yippee > .yippeeinner {
|
|
||||||
animation-delay: .1s;
|
|
||||||
}
|
|
||||||
|
|
||||||
* {
|
|
||||||
animation-play-state: running;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="one"><div class="yippee"><div class="yippeeinner">yippee</div></div></div>
|
|
||||||
<div id="two"><div class="yippee"><div class="yippeeinner">yippee</div></div></div>
|
|
||||||
<div id="three"><div class="yippee"><div class="yippeeinner">yippee</div></div></div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
24
srcs/requirements/wordpress/Dockerfile
Normal file
24
srcs/requirements/wordpress/Dockerfile
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
# TODO(any)(latest)
|
||||||
|
FROM alpine:latest
|
||||||
|
|
||||||
|
# EXPOSE
|
||||||
|
EXPOSE 9000
|
||||||
|
|
||||||
|
# install packages
|
||||||
|
RUN apk update
|
||||||
|
RUN apk add php-fpm
|
||||||
|
RUN apk fix
|
||||||
|
|
||||||
|
RUN addgroup -S www
|
||||||
|
RUN adduser -D -S -G www www
|
||||||
|
|
||||||
|
#RUN apk add curl
|
||||||
|
# install wordpress
|
||||||
|
# RUN mkdir -p /www
|
||||||
|
# RUN curl https://wordpress.org/latest.tar.gz | tar zx -C /www
|
||||||
|
|
||||||
|
# add config
|
||||||
|
COPY /conf/ /etc/php83/
|
||||||
|
|
||||||
|
# start
|
||||||
|
CMD ["php-fpm83", "-F"]
|
1
srcs/requirements/wordpress/conf/php-fpm.conf
Normal file
1
srcs/requirements/wordpress/conf/php-fpm.conf
Normal file
|
@ -0,0 +1 @@
|
||||||
|
include=/etc/php83/php-fpm.d/*.conf
|
11
srcs/requirements/wordpress/conf/php-fpm.d/www.conf
Normal file
11
srcs/requirements/wordpress/conf/php-fpm.d/www.conf
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[www]
|
||||||
|
|
||||||
|
user = www
|
||||||
|
group = www
|
||||||
|
listen = wordpress:9000
|
||||||
|
|
||||||
|
pm = dynamic
|
||||||
|
pm.max_children = 5
|
||||||
|
pm.start_servers = 2
|
||||||
|
pm.min_spare_servers = 1
|
||||||
|
pm.max_spare_servers = 3
|
Loading…
Add table
Reference in a new issue