Ever needed a fast way to spin up a fresh instance of WordPress to try something out or to have your personal local dev environment?
Update 2019-09-20: You want to access the htdocs Folder of your WordPress via a SMB/SAMBA/Windows share?
You have Docker & Docker-Compose installed on your machine?
Excellent – just do the following
Setup docker-compose.yml
- Create a new directory, eg. “wp-dev-docker“
- Inside it – create a new file called “docker-compose.yml” with the following content
version: '3.7'
services:
wp:
image: wordpress
restart: always
ports:
- 8080:80
volumes:
- wp_data_volume:/var/www/html:z
environment:
WORDPRESS_DB_PASSWORD: yolo123
networks:
- default
mysql:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: yolo123
networks:
- default
samba:
image: dperson/samba
networks:
- default
environment:
GROUPID: 0
USERID: 0
ports:
- 139:139
- 445:445
tmpfs:
- /tmp
restart: unless-stopped
stdin_open: true
tty: true
volumes:
- wp_data_volume:/mnt:rw
command: '-s "wpshare;/mnt;yes;no;no;wpshare" -u "wpshare;wpshare"'
volumes:
wp_data_volume:
networks:
default:
- Open your terminal inside your previously created directory and execute
> docker-compose up -d
- Wait a few seconds and open http://localhost:8080 and enjoy your fresh WordPress instance
Access via SMB/SAMBA/Windows share
While your instance is running you can also access the WordPress files inside the htdocs-folder of your container via a SMB/Samba/Windows share. Just connect to
Share: //localhost/wpshare
User: wpshare
Password: wpshare
Hint for MacOS-Users: Connecting via “Go” -” Connect to server” leads to the error “This file server is available on your computer. Access the volumes and files locally”. Mount the share via the following commands:
> mkdir wpshare
> mount_smbfs //wpshare:wpshare@localhost/wpshare wpshare/
Linux users might use this command to mount the share:
> mount -t cifs -o user=wpshare "//localhost/wpshare" wpshare/
Important: If you ever plan to use (parts of) this docker-compose.yml file in production/publicly remember to change the passwords of WORDPRESS_DB_PASSWORD, MYSQL_ROOT_PASSWORD and wpshare/wpshare!
Further usefull Docker commands:
> docker-compose logs -f # shows log output of both wordpress+mysql containers
> docker-compose stop # stops the containers without removing them
> docker-compose down # stops the containers and removes them
> docker-compose images # shows list of both containers
> docker volume ls # shows a list of your current volumes
> docker volume inspect abexdxdddd # shows meta info about a specific volume
> docker volume rm abexdxdddd # removes volume with given name - CAREFULL! this is where the data of your containers is stored