3 Langkah Mudah Pengembangan WordPress Lokal Dengan Docker
Penyempurnaan: Yakinkan untuk mengecek sisi ke-2 mengenai langkah memakai wp-cli dengan panduan Docker ini.
Perbaiki 10/23/2016: Saya sudah mengupdate kutipan untuk memakai docker-compose versi 2.
Docker memang kece, tapi karena saya seorang toololic, saya tidak sia-siakan waktu Anda atau waktu saya untuk menjelaskan mengenai bagaimana Anda harus memakainya. Bagaimana juga, Anda adalah manusia, jadi Anda bisa pilih alat yang mana Anda sukai.
Sabuk alat saya untuk meningkatkan situs WordPress secara lokal sudah berbeda sepanjang tahun. Pertama, saya barusan memakai mesin Ubuntu dengan timbunan LAMP yang saya instal lewat Tuxlite. Selanjutnya saya membudgetkan.membujetkan untuk Mac dan mendapati MAMP, tapi demikian saya jadi lebih nyaman di bash, Ubuntu VirtualBox yang simpel ialah yang saya gemari. Selanjutnya Vagrant tiba! Sayang, saya terlampau noob dan barusan kembali dengan MAMP. Itu bekerja untuk saat ini dan saya cuma pastikan saya tidak sentuh apa saja (saya memakai Nginx di MAMP hingga komposisi sedikit menjemukan untuk saya dibanding dengan zone nyaman saya dengan Apache).
Saat Docker tiba, saya secara cepat mencapainya dan mengetesnya dari semua tipe kasus pemakaian di titik di mana saya bahkan juga merekomendasikan ke bos saya supaya kami memakainya dalam beberapa scenario produksi. Cuma hingga kini, peningkatan Docker betul-betul terhisap di Mac dan Windows karena jumlahnya permasalahan dengan share file di antara mesin dan tempat (jadi saya barusan memasang Ubuntu 16.04). Disamping itu, di Mac dan Windows, Anda harus memasang Docker dalam Virtualbox lewat mesin docker. Saat ini, ini nyaris asli untuk tiap basis dan banyak keruwetan sudah dituntaskan. Ngomong-ngomong… tersebut argumen saya kenapa saya terasa nyaman memakainya saat ini untuk peningkatan lokal. Mari mulai!
The Quick Dan Dirty
Bila Anda cuma ingin suatu hal untuk disalin dan ditempel dan pergi, saya akan menggunting omong kosong itu dan memberinya ke Anda.
#!/bin/bash
mkdir wordpress-site && cd wordpress-site
touch docker-compose.yml
cat > docker-compose.yml <<EOL
version: "2"
services:
my-wpdb:
image: mariadb
ports:
- "8081:3306"
environment:
MYSQL_ROOT_PASSWORD: ChangeMeIfYouWant
my-wp:
image: wordpress
volumes:
- ./:/var/www/html
ports:
- "8080:80"
links:
- my-wpdb:mysql
environment:
WORDPRESS_DB_PASSWORD: ChangeMeIfYouWant
EOL
docker-compose up -d
Mari masuk ke detail… tapi pertama-tama, pastikan Anda telah menginstal Docker.
1 - Setting docker-compose
Saat sebelum saya meneruskan, saya perlu menjelaskan suatu hal.sebuah hal. Anda bisa mengopi dan tempelkan potongan ini selama seharian dan itu akan bekerja untuk Anda. Anda bisa memakai apa yang saya kenali dari mencoba untuk memperoleh suatu hal dan bekerja tanpa keringat, tapi sampai Anda betul-betul pergi dan membaca dokumentasi mengenai docker atau docker-compose Anda kemungkinan tidak segera dapat sesuaikan dan meretas proses Anda sendiri. Yang menjelaskan, inilah.
Tujukan ke folder project WordPress Anda. Bila Anda belum mengambil WordPress, tidak ada apa-apa. Tempat WordPress sah akan mengkloningnya untuk Anda.
Buat file namanya docker-compose.yml
$ mkdir wordpress-site && cd wordpress-site
$ touch docker-compose.yml
2 - Buat Kontainer Anda
WordPress memerlukan timbunan LAMP untuk digerakkan. Pada proses ini, kami membagikan timbunan LAMP jadi dua tempat: tempat yang jalankan database (MySQL atau MariaDB), dan tempat yang jalankan server situs (PHP dengan Apache atau PHP dengan Nginx).
Rekatkan komposisi YAML untuk tempat pangkalan data Anda yang kami berikan nama "my-wpdb"
my-wpdb:
image: mariadb
ports:
- "8081:3306"
environment:
MYSQL_ROOT_PASSWORD: ChangeMeIfYouWant
Di sini kami memakai gambar mariadb resmi, memetakkan port lokal kami 8081 ke port penampung 3306, dan memberikannya faktor lingkungan yang berisi password pemakai root. "MYSQL_ROOT_PASSWORD" diambil oleh skrip shell yang jalan saat container lakukan booting; itu akan memasang pemakai dalam kata kode dan lakukan semakin banyak fenomena.
Saat ini kami mempunyai tempat pangkalan data, tapi kami masih memerlukan PHP dan Apache (dan file WordPress).
Rekatkan komposisi YAML untuk tempat WordPress Anda yang kami berikan nama "my-wp"
my-wp:
image: wordpress
volumes:
- ./:/var/www/html
ports:
- "8080:80"
links:
- my-wpdb:mysql
environment:
WORDPRESS_DB_PASSWORD: root
Kami masih memakai gambar Docker resmi pada sekarang ini dan ini ialah gambar WordPress resmi. Ini mempunyai skrip shell yang automatis tersambung ke tempat pangkalan data yang kami bikin awalnya, membuat pangkalan data, mengkloning file WordPress, dan mempersiapkan wp-config berdasar faktor lingkungan yang kami beri ke situ (saksikan halaman gambar sah untuk semuanya opsi).
Sama dengan penampung pangkalan data, kami memetakkan port mesin 8080 kami ke port penampung 80. Disamping itu, kami memasangkan directory kami sekarang ini./ ke directory webroot penampung /var/www/html. Docker menyebutkan ini "volume". Ini memungkinkannya project Anda untuk hidup di mesin lokal Anda dan dibagi ke penampung.
Lihat jika kami mempertautkan tempat my-wpdb kami ke tempat my-wp kami. Semakin khusus kembali, kami memberitahu my-wp jika itu akan mengarah ke tempat my-wpdb dengan alias namanya "mysql". Ini karena skrip shell di tempat WordPress sudah meng-hardcode nama host database sebagai "mysql". Docker secara ajaib memutuskan nama host ke alamat IP my-wpdb.
Wah!
3 - Lakukan dan Sambungkan
Saat ini Anda bisa membuat tempat Anda dan menjalankannya, dan docker-compose membuat benar-benar gampang!
$ docker-compose up -d
Anda saat ini bisa menelusuri ke http://localhost:8080/ dan melihat diskusi instalasi WordPress Anda! Bila Anda ingin tersambung ke mysql, yakinkan untuk memakai alamat 127.0.0.1 dan port 8081 sama seperti yang kami petakan di atas. Nama host dan alamat IP kemungkinan berlainan bergantung pada bagaimana Anda memasang Docker, tapi ini akan berperan bila Anda memakai instalasi Docker terbagi.
Bila Anda ingin melihat keluaran tempat (untuk mengawasi kekeliruan), ikuti lognya:
$ docker-compose logs -f
Bila Anda ingin stop dan mengawali lagi tempat Anda, lakukan saja
$ docker-compose stop
$ docker-compose up -d