在前面的文章中我們學會了如何利用docker指令來安裝一個WordPress網站,同學們會發現指令要加上很多冗長的參數,一不小心就要重新輸入,非常麻煩。為了避免此種麻煩,有一個叫做Docker Compose的工具可以協助我們把想要啟動的所有指令全部編寫在一個叫做docker-compose.yml的檔案中,然後,再一口氣執行部署作業,如此就會讓我們部署網站變得方便多了。
請在你的電腦中建立一個資料夾,然後在此資料夾中建立一個叫做docker-compose.yml的檔案,內容如下:
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wpadmin
WORDPRESS_DB_PASSWORD: 12345678
WORDPRESS_DB_NAME: wp
volumes:
- wordpress:/var/www/html
db:
image: mysql
restart: always
environment:
MYSQL_DATABASE: wp
MYSQL_USER: wpadmin
MYSQL_PASSWORD: 12345678
MYSQL_ROOT_PASSWORD: 12345678
volumes:
- db:/var/lib/mysql
volumes:
wordpress:
db:
存檔完畢之後,只要執行docker-compose up,過一小段時間,WordPress就啟用了。此時,只要在自己的電腦瀏覽器中輸入localhost:8080這個網址,即可看到WordPress的安裝畫面。安裝完畢之後,所有的系統資料就會被記錄下來,下次再進入此網站的時候,就可以看到修改後的樣子而不會被還原。因此,在docker-compose.yml的最下方建立了兩個volume,如下所示:
假如要移除所有的設定,重新設定一個網站的話,也可以在中斷docker-compose的執行之後,輸入以下的指令:
docker-compose down
docker volume rm compose-wp_db compose-wp_wordpress
則下一次再利用docker-compose up指令重啟時,就會出現重新安裝WordPress的畫面。上述的安裝檔案適用於x86的機器,不論是Windows或是Linux都可以。但是如果你使用的是樹莓派的話,因為它的mysql映像檔並不相容,所以要換一個映像檔,如下所示:
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wpadmin
WORDPRESS_DB_PASSWORD: 12345678
WORDPRESS_DB_NAME: wp
volumes:
- /root/docker/wp:/var/www/html
db:
image: hypriot/rpi-mysql
restart: always
environment:
MYSQL_DATABASE: wp
MYSQL_USER: wpadmin
MYSQL_PASSWORD: 12345678
MYSQL_ROOT_PASSWORD: 12345678
volumes:
- /root/docker/mysql:/var/lib/mysql
在上述的指令檔中我們還示範了如何不使用volume,而是把系統檔案(包括WordPress以及MySQL)放在本機資料夾的方法,為了要執行這個指令,建議把上述的docker-compose.yml放在/root/docker底下,並在該資料夾下再建立兩個資料夾分別是wp以及mysql,用來放置兩個WordPress和MySQL使用的資料檔案。
樹莓派預設是沒有docker-compose指令的,要使用以下的方式把它安裝上去:
pip install docker-compose
如果你的樹莓派連Docker都還沒安裝,那麼請參考以下的網站說明:
https://dev.to/elalemanyo/how-to-install-docker-and-docker-compose-on-raspberry-pi-1mo