Cara menggunakan php install dockerfile

Setelah kita berhasil menginstal server Ubuntu kita dengan Docker dan Nginx. Saatnya kita memanfaatkan aplikasi tersebut untuk mengembangkan Development Environment aplikasi kita pada Server. Kita akan mencoba meng-install stack aplikasi PHP, MySQL dan PHPMyAdmin sebagai tools untuk mengelola basis data MySql kita. Untuk melanjutkan pengembangan ini, pertama kita pahami konsep network pada Docker.

Pada dasarnya ketika suatu Container dibuat, Docker juga membuat network default untuk Container tersebut agar dapat berkomunikasi dengan Container lain. Namun kita juga dapat membuat network tersendiri agar suatu Container tidak dapat diakses oleh Container lain di luar network-nya. Dengan network ini, kita dapat melakukan klasifikasi dan klastering microservice kita.

Docker Engine dan Docker Network

Dengan penggunaan network. Kita dapat mengisolasi akses Container satu dengan Container lainnya agar lebih aman. Selain itu penggunaan network dapat membantu kita mengidentifikasi struktur microservice yang kita buat.

Setelah mengetahui konsep dasar dari network, mari kita mulai untuk mengembangkan environment yang kita butuhkan. Ada beberapa tahap untuk proses pengembangan ini yaitu, pembuatan network utama, pembuatan container mysql, pembuatan container phpmyadmin, dan yang terakhir pembuatan container php. Pada proses terakhir kita akan mencoba apakah semua Docker Container yang kita rancang dapat terhubung satu sama lain.

1. Pembuatan Network Utama

Network ini akan kita gunakan untuk menghubungkan microservice yang akan kita buat. Sesungguhnya secara default kita dapat memanfaatkan network yang disediakan Docker, namun agar mendalami proses pemahaman mengenai Network pada Docker. Kita akan membuat network sendiri untuk microservice kita.
Untuk melihat daftar network yang telah ada pada Docker, ketikan perintah :

docker network ls

Setelah memanggil perintah di atas, maka anda dapat melihat daftar Docker Network yang tersedia

NETWORK ID     NAME      DRIVER    SCOPE
0e880c5cc6ac   bridge    bridge    local
95dff74c8bbb   host      host      local
3ac5ad6e4fc1   none      null      local

Kemudian buatlah network baru untuk nantinya kita tempati sebagai network proyek awal kita dengan

docker network create -d bridge main-network

Setelah selesai, makan jika anda panggil perintah “docker network ls” maka anda akan melihat network baru anda

NETWORK ID     NAME           DRIVER    SCOPE
0e880c5cc6ac   bridge         bridge    local
95dff74c8bbb   host           host      local
307b9c0d7bfa   main-network   bridge    local
3ac5ad6e4fc1   none           null      local

Setelah membuat network baru, mari kita lanjutkan langkah berikutnya.

2. Membuat Container MySQL

Untuk proses pembuatan Docker Container MySql akan saya buat artikel tersendiri. Karena area of coverage dari hal ini lumayan luas. Silahkan cek artikel berikut untuk mengetahui cara membuat Docker Container MySQL : Membuat Docker Container MySQL dengan Docker Volume.

3. Pembuatan Container PHPMyAdmin

Proses pembuatan Container PHPMyAdmin dipisah dari Container MySQL untuk memudahkan anda jika suatu saat ingin menyalakan atau menghidupkan PHPMyAdmin tanpa harus memberi pengaruh pada Container MySQL. Untuk tutorial dan caranya, dapat di lihat di artikel Membuat Docker Container PHPMyAdmin dengan Docker Compose

4. Pembuatan Container PHP

Pembuatan Docker Container PHP ini menggunakan fitur Docker Bind Mounts. Artinya direktori lokal Docker anda, akan dihubungkan dengan direktori internal Docker Container. Untuk tutorial lengkap mengenai Pembuatan Docker Container PHP, dapat anda lihat pada artikel Membuat Docker Container PHP dengan Docker Use Bind Mounts ​

NATVPS.id – Instalasi NGINX dan PHP-FPM pada Docker dapat membantu jika ingin memasang web server pada VPS diatas container, jadi environment lebih terisolasi [resources dapat diatur]. Pada postingan kali ini, kami akan menjelaskan langkah-langkah untuk memasang NGINX dan PHP-FPM pada Docker Compose di NAT VPS.

Tutorial ini dibuat oleh @canchooseusername. Terima kasih atas ilmunya!

Persyaratan

  • Memiliki Domain dengan sebuah A record yang telah disambungkan ke IP publik VPS
  • Port 80 masih terbuka. Jika sudah dipakai oleh [misalkan] aaPanel, ganti port pada pengaturan Docker [akan dijelaskan nanti]

Instalasi Docker dan Docker Compose

Instalasi Docker

Sebelum dapat memasang Docker Compose, kita perlu memasang Docker terlebih dahulu.

Pertama-tama, masukkan command berikut untuk memperbarui index repositori dan memasang package

curl -fsSL //get.docker.com | sh -
1:

apt update
apt install curl -y

Selanjutnya, pasang Docker dengan script otomatis:

curl -fsSL //get.docker.com | sh -

Tunggu hingga muncul tampilan seperti ini:

Jika sudah, maka Docker berhasil dipasang. Yeay!

Instalasi Docker Compose

Sekarang, kita dapat memasang Docker Compose.

Pergi ke //github.com/docker/compose/releases. Gulir ke bawah, lalu cari file yang bertuliskan docker-compose-linux-x86_64, seperti ini:

Klik kanan lalu salin URL nya. Kemudian, masukkan command dibawah untuk mengunduh Docker Compose

wget 

Contohnya:

wget //github.com/docker/compose/releases/download/v2.5.1/docker-compose-linux-x86_64

Lalu, masukkan command dibawah untuk memasang Docker Compose [memindahkannya ke

curl -fsSL //get.docker.com | sh -
2 dan mengatur permission]:

mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

Docker Compose berhasil dipasang. Untuk mengeceknya, jalankan

curl -fsSL //get.docker.com | sh -
3.

Mengatur Web Server [Docker Compose]

Docker dan Docker Compose berhasil dipasang. Saatnya untuk memasang web server!

Buat folder-folder yang diperlukan dengan command dibawah:

cd ~
mkdir docker && cd docker
mkdir lemp && cd lemp

Sebelum melanjutkan, install package

curl -fsSL //get.docker.com | sh -
4 terlebih dahulu agar dapat mengedit file:

apt install nano -y

Kemudian, buat file baru dengan nama

curl -fsSL //get.docker.com | sh -
5 menggunakan
curl -fsSL //get.docker.com | sh -
4:

nano docker-compose.yml

Paste-kan kode dibawah pada file tersebut:

version: "3"
services:
  nginx:
    restart: always
    image: nginx:stable-alpine
    container_name: lemp-nginx
    links:
      - php
    ports:
      - "80:80"
  php:
    restart: always
    image: php:fpm-alpine
    container_name: lemp-php
    volumes:
      - ./webcontent:/var/www/html
  db:
    restart: always
    image: mariadb
    container_name: lemp-db
    environment:
      MYSQL_ROOT_PASSWORD: password_goes_here

Sebelum melanjutkan, ada baiknya untuk memahami maksud dari kode diatas. Kode diatas akan digunakan oleh Docker Compose untuk membuat container baru. Docker Compose akan memasang NGINX [line 3 – 13], PHP [line 14 – 19], dan MariaDB [line 20 – 25].

BACA  Instalasi Nextcloud + NGINX [HTTPS] di NAT VPS

Untuk yang sudah memasang software yang menggunakan port 80 [misalnya aaPanel], ganti angka 80 pertama pada

curl -fsSL //get.docker.com | sh -
7 [line 13] dengan port yang masih terbuka. Misalkan penulis ingin mengarahkannya ke port 5003, maka penulis mengganti
curl -fsSL //get.docker.com | sh -
8 menjadi
curl -fsSL //get.docker.com | sh -
9.

Simpan file tersebut dengan cara menekan Ctrl + X, y, lalu Enter.

 

Memulai Web Server [Docker Compose]

Konfigurasi yang diperlukan sudah selesai.  Jalankan dan hentikan Docker Compose sebagai persiapan pertama kalinya:

docker-compose up -d
docker-compose stop

Jalankan kembali Docker Compose dengan memasukkan command berikut:

curl -fsSL //get.docker.com | sh -
0

Pengaturan Domain Forwarding

Agar web server dapat diakses oleh publik, maka kita perlu mengatur domain forwarding agar port 55003 dapat diakses dari luar VPS.

Kebanyakan penyedia NAT VPS telah mengatur konfigurasi port yang dimana tiap user mendapatkan 21 port terbuka. Namun untuk NAT VPS dari HostData.id, user harus melakukan forwarding port VPS ke port IP publik yang terbuka secara manual. Jika seperti itu, maka ganti port pada file

curl -fsSL //get.docker.com | sh -
5. Silahkan kontak penyedia VPS masing-masing. Tetapi untuk user NAT VPS HostData.id, kami telah memberikan langkah-langkah detail untuk melakukan forwarding port [request port], silahkan baca di [postingan sebelumnya].

Atur domain forwarding dengan konfigurasi berikut:

  • Protocol: TCP
  • Source Domain/IP: 103.180.125.226
  • Source Port: Masukkan port sesuai keinginan Anda, contohnya 55003
  • Destination IP:IP private VPS [pilihan yang ada]
  • Destination Port: 55003

Selesai! Sekarang, web server NGINX dapat diakses pada //103.180.125.226:SourcePort, misalnya //103.180.125.226:55003.

Penutup

Begitulah langkah-langkah instalasi NGINX dan PHP-FPM di Docker Compose pada NAT VPS. Perlu diketahui bahwa file konfigurasi yang disediakan sangatlah minimal. Konfigurasi lebih lanjut diperlukan.

Bài mới nhất

Chủ Đề