Add docker-compose
This commit is contained in:
parent
2da7726458
commit
9e13af4ddb
17
README.md
17
README.md
@ -28,6 +28,8 @@ This will launch a WordPress local instance at http://localhost:8888. You can lo
|
|||||||
|
|
||||||
### Lando
|
### Lando
|
||||||
|
|
||||||
|
Install Lando, then:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ lando start
|
$ lando start
|
||||||
$ lando wp --path=/app/web/ core install \
|
$ lando wp --path=/app/web/ core install \
|
||||||
@ -38,3 +40,18 @@ $ lando wp --path=/app/web/ theme activate sample-wp-block-theme
|
|||||||
```
|
```
|
||||||
|
|
||||||
### docker-compose
|
### docker-compose
|
||||||
|
|
||||||
|
Install Docker-compose, then:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ docker-compose up -d
|
||||||
|
# wait a few seconds, run `docker-compose logs` to check start-up
|
||||||
|
$ docker-compose exec --user=user wordpress wp core install \
|
||||||
|
--title="Dev Env" \
|
||||||
|
--admin_user=admin --admin_password=admin --admin_email=admin@example.com \
|
||||||
|
--skip-email --url=http://sample-block-theme.localhost:8080
|
||||||
|
$ docker-compose exec --user=user wordpress wp theme activate sample-wp-block-theme
|
||||||
|
```
|
||||||
|
|
||||||
|
This should also work with `docker compose` (i.e. newwer Docker / Compose 2);
|
||||||
|
just replace `docker-compose` with `docker compose` in the above.
|
||||||
|
44
docker-compose.yml
Normal file
44
docker-compose.yml
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
---
|
||||||
|
version: "3"
|
||||||
|
|
||||||
|
services:
|
||||||
|
wordpress:
|
||||||
|
image: "wordpress"
|
||||||
|
ports:
|
||||||
|
- "8080:80"
|
||||||
|
dns: 4.2.2.4
|
||||||
|
volumes:
|
||||||
|
- "./entrypoint.sh:/usr/local/bin/entrypoint.sh:z"
|
||||||
|
- ".:/var/www/html/wp-content/themes/sample-wp-block-theme:z"
|
||||||
|
entrypoint: ["/usr/local/bin/entrypoint.sh"]
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
environment:
|
||||||
|
- WORDPRESS_DB_HOST=db
|
||||||
|
- WORDPRESS_DB_USER=wordpress
|
||||||
|
- WORDPRESS_DB_PASSWORD=wordpress
|
||||||
|
- WORDPRESS_DB_NAME=wordpress
|
||||||
|
- WORDPRESS_TABLE_PREFIX=wp_
|
||||||
|
- PAGER=more
|
||||||
|
container_name: "samplewpblocktheme_wordpress"
|
||||||
|
|
||||||
|
db:
|
||||||
|
image: "mariadb:10.6"
|
||||||
|
ports:
|
||||||
|
- 3306:3306
|
||||||
|
volumes:
|
||||||
|
- "mariadb:/var/lib/mysql"
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
environment:
|
||||||
|
- MYSQL_ROOT_PASSWORD=wordpress
|
||||||
|
- MYSQL_DATABASE=wordpress
|
||||||
|
- MYSQL_USER=wordpress
|
||||||
|
- MYSQL_PASSWORD=wordpress
|
||||||
|
container_name: "samplewpblocktheme_db"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
mariadb:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
backend:
|
50
entrypoint.sh
Executable file
50
entrypoint.sh
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ -n "$PHP_EXTENSIONS" ]; then
|
||||||
|
for extension in $PHP_EXTENSIONS; do
|
||||||
|
if ! php -m | grep -q $extension; then
|
||||||
|
docker-php-ext-install $PHP_EXTENSIONS
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! id -u "user" >/dev/null ; then
|
||||||
|
useradd -u 1000 -m user
|
||||||
|
mkdir /var/www/html/vendor
|
||||||
|
chown -R user:user /var/www/html/vendor
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -x /usr/bin/unzip ]; then
|
||||||
|
apt update && apt install unzip
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -x /usr/local/bin/wp ]; then
|
||||||
|
curl -z /usr/local/bin/wp -o /usr/local/bin/wp https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
|
||||||
|
chmod +x /usr/local/bin/wp
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -x /usr/local/bin/composer ]; then
|
||||||
|
mkdir -p /var/www/.composer
|
||||||
|
chown user:user /var/www/.composer
|
||||||
|
|
||||||
|
curl https://getcomposer.org/installer -o /tmp/composer-setup.php
|
||||||
|
php -r "if (hash_file('sha384', '/tmp/composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
|
||||||
|
php /tmp/composer-setup.php
|
||||||
|
rm /tmp/composer-setup.php
|
||||||
|
|
||||||
|
mv /var/www/html/composer.phar /usr/local/bin/composer
|
||||||
|
fi
|
||||||
|
|
||||||
|
export APACHE_RUN_USER=user
|
||||||
|
export APACHE_RUN_GROUP=user
|
||||||
|
|
||||||
|
# Increase PHP memory limiit because it's A HOG
|
||||||
|
echo 'memory_limit = 256M' >> /usr/local/etc/php/conf.d/docker-php-memlimit.ini;
|
||||||
|
|
||||||
|
if [ -n "$@" ]; then
|
||||||
|
"$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Upstream ENTRYPOINT
|
||||||
|
# https://github.com/docker-library/wordpress/blob/master/php7.4/apache/Dockerfile#L120
|
||||||
|
/usr/local/bin/docker-entrypoint.sh apache2-foreground
|
Loading…
Reference in New Issue
Block a user