Add docker-compose

This commit is contained in:
3wc 2024-01-11 23:38:37 -03:00
parent 2da7726458
commit 9e13af4ddb
3 changed files with 111 additions and 0 deletions

View File

@ -28,6 +28,8 @@ This will launch a WordPress local instance at http://localhost:8888. You can lo
### Lando
Install Lando, then:
```sh
$ lando start
$ lando wp --path=/app/web/ core install \
@ -38,3 +40,18 @@ $ lando wp --path=/app/web/ theme activate sample-wp-block-theme
```
### 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
View 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
View 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