Skip to content

Instantly share code, notes, and snippets.

@huyxdong
Last active June 11, 2023 07:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save huyxdong/cc1b55270d91394b9f8139ceb2344622 to your computer and use it in GitHub Desktop.
Save huyxdong/cc1b55270d91394b9f8139ceb2344622 to your computer and use it in GitHub Desktop.
Docker compose for a WordPress project

Docker compose for a WordPress project

version: '3'

services:
  wordpress:
    depends_on:
      - db
    image: wordpress
    restart: always
    # volumes: ['./:/var/www/html']
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: username
      WORDPRESS_DB_PASSWORD: password
      WORDPRESS_DB_NAME: wordpress
    ports:
      - 8000:80
    ## install mysql driver
    # command: ["docker-php-ext-install", "mysqli pdo pdo_mysql"]
    networks:
      - wpsite
  db:
    image: mysql
    restart: always
    volumes:
      - ~/path_to/database:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: adminpassword
      MYSQL_DATABASE: wordpress
      MYSQL_USER: username
      MYSQL_PASSWORD: password
    networks:
      - wpsite
  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin
    restart: always
    ports:
      - 8080:80
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: adminpassword
    networks:
      - wpsite
networks:
  wpsite:
volumes:
  database:

Additional configs

install MySQL's driver for WordPress

docker-php-ext-install mysqli pdo pdo_mysql

add the following lines to .htaccess (before trying to upload WordPress themes)

php_value post_max_size 64M
php_value upload_max_filesize 64M
php_value max_file_uploads 128M
php_value max_input_vars 5000

install Wordpress CLI & create an user by command line (if needed)

<inside WordPress's docker container>

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
wp --info

wp user create haptn haptn@email.com --role=administrator --user_pass=<mysecret_password>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment