Banyak cara untuk melakukan instalasi bahasa pemrograman di dalam server, bahasa pemrograman tersebut bisa diinstal juga ke dalam container seperti Docker untuk memudahkan virtualisasi. Pada artikel ini kamu akan mempelajari tentang bagaimana cara deploy aplikasi Go ke Docker.
Pengertian Go (Golang)
Go atau Go Language (Golang) merupakan salah satu bahasa pemrograman open-source yang dibuat oleh Google. Ada banyak aplikasi populer yang dibuat dengan bahasa pemrograman Go, yaitu Kubernetes, Docker, Hugo, dan Caddy.
Baca Juga: Cara Install Webuzo Untuk VPS
Docker
Docker adalah Platform as a Service (PaaS) open source yang memungkinkan virtualization dilakukan dalam satu server yang sama. Pengaturan software beserta file/hal pendukung lainnya akan menjadi sebuah Image (istilah yang diberikan oleh Docker). Hasil instan dari Image tersebut kemudian disebut Container.
Dulu, aplikasi atau bahasa pemrograman seperti Go di-deploy pada VM (Virtual Machine). Namun, VM membutuhkan resource yang besar, berbeda dengan Docker yang dapa memudahkan para engineer untuk melakukan monitoring dan mengelola environment container dengan resource yang lebih kecil.
Penjelasan Docker lebih lengkapnya dapat kamu baca di artikel Tutorial Docker dalam Bahasa Indonesia.
Persyaratan
Sebelum memulai proses instalasinya, pastikan kamu telah memenuhi beberapa persyaratan berikut:
- Memiliki server dengan CentOS 7.
- Memiliki akses sebagai root.
Baca Juga: Tutorial XAMPP dan Cara Install WordPress Offline
Langkah-Langkah Deploy Aplikasi Go ke Docker
Kamu harus melakukan instalasi Docker terlebih dulu. Kunjungi artikel berikut untuk mempelajari cara instalasinya: Cara Install Docker di CentOS 7.
Jika kamu sudah memastikan bahwa Docker telah terinstal dengan dan dapat digunakan, maka selanjutnya ikuti langkap berikut ini.
Step 1 – Create Directory
$ mkdir golang
Buat direktori untuk menempatkan contoh script aplikasi Go.
Step 2 – Create File Go
Ke direktori Golang dan tambahkan script di bawah ini.
$ nano maingo.go
package main
import (
“fmt”
“log”
“net/http”
)
func index(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, “Hi, this is Docker Dewiweb!”)
}
func about(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, “Hi, this is Docker Dewiweb!”)
}
func main() {
http.HandleFunc(“/”, index)
http.HandleFunc(“/about”, about)
log.Println(“application started at port :8000”)
log.Fatal(http.ListenAndServe(“:8000”, nil))
}
Save dan exit.
Baca Juga: Cara Install dan Konfigurasi Maldet (Linux Malware Detect-LMD)
Step 3 – Create Dockerfile
Cara deploy aplikasi Go ke Docker belum selesai. Saat ini kamu memerlukan sebuah Dockerfile untuk membangun sebuah Docker yang berbentuk image. Script Dockerfile ini berisi instruksi untuk membangun sebuah image. Ini cara membuatnya.
$ nano Dockerfile
FROM golang:1.10.5-alpine3.8
WORKDIR /go/src/app
COPY maingo.go .
RUN go build -o main .
EXPOSE 8000
CMD [“./main”]
Instruksi di atas menggunakan based image Golang yang menggunakan Alpine Linux, kemudian menambah file main.go ke /go/src/app. Selanjutnya menjalankan dan mengompilasi aplikasi Go ke biner, membuka port, lalu menjalankan aplikasinya.
Step 4 – Docker Build
Setelah membuat file atau script di atas, jalankan Docker build-nya.
$ sudo docker build -t appgo:1.0 .
Sending build context to Docker daemon 5.12kB
Step 1/6 : FROM golang:1.10.5-alpine3.8
—> 2f577258bd10
Step 2/6 : WORKDIR /go/src/app
—> Using cache
—> 02e7a4372490
Step 3/6 : COPY maingo.go .
—> ca6c0aa64b4c
Step 4/6 : RUN go build -o main .
—> Running in 8cfc9c02f83b
Removing intermediate container 8cfc9c02f83b
—> e7e117cb94e7
Step 5/6 : EXPOSE 8000
—> Running in cb8978dec6ee
Removing intermediate container cb8978dec6ee
—> 178f8ac7b042
Step 6/6 : CMD [“./main”]
—> Running in 27cf8b054ac7
Removing intermediate container 27cf8b054ac7
—> 22841e195431
Successfully built 22841e195431
Successfully tagged appgo:1.0
Saat ini kamu sudah selesai membuat image Docker.
Gunakan command di bawah ini untuk melakukan pengecekan image.
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
appgo 1.0 22841e195431 55 seconds ago 265MB
golang 1.10.5-alpine3.8 2f577258bd10 14 months ago 258MB
Baca Juga: Cara Install SSL OpenLiteSpeed di Ubuntu 18.04
Step 5 – Running Container
Langkah untuk cara deploy aplikasi Go ke Docker yang terakhir, jalankan container dari image yang sudah dibuat sebelumnya menggunakan command di bawah ini.
$ docker run -d –name appgo -p 8000:8000 appgo:1.0
Perintah atau command di atas menjalankan container dengan nama appgo dan mengeksposnya ke port 8000.
Kamu bisa mengecek container yang berjalan seperti di bawah ini.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
158c9c686504 appgo:1.0 “./main” 48 seconds ago Up 47 seconds 0.0.0.0:8000->8000/tcp appgo
Kemudian kamu bisa coba akses Docker container yang berjalan dengan URL: https://IP-Server:port.
Simpulan
Jika dilakukan dengan tepat, seharusnya saat ini kamu telah berhasil melakukan deploy aplikasi Go ke Docker. Jika ingin menambahkan script aplikasi Go yang lain, ikuti langkah-langkah di atas.
Lalu, jika kamu ingin mengetahui cara deploy aplikasi lain, seperti Java dan NodeJS ke Docker, klik tulisan tersebut atau kunjungi tulisan lain di blog Dewaweb.
Demikian artikel cara deploy aplikasi Go ke Docker. Jangan sungkan untuk meninggalkan ide-ide topik yang ingin kamu baca di blog Dewaweb. Semoga artikel ini membantu!