Skip to content
Jagoan Cloud Docs
  • Solutions
    • Server Ujian Online
    • Scalable WordPress
  • Products
    • Jagoan Cloud PaaS
      • Pricing
    • Cloud Backup
    • VPS Windows
    • Business Mail
    • SSL Certificate
  • Login App
Popular Search settingsshphpdockerdomain

Rapor Digital Madrasah

  • Cara Instalasi RDM

Panduan Dasar

  • Cara Memasang SSL di Jagoan Cloud
  • Mengubah domain Jagoan Cloud ke Domain Sendiri
  • Cara Menambahkan IP Public

Moodle

  • Cara Login ke Server Moodle di Jagoan Cloud
  • Cara Login ke Aplikasi Moodle di Jagoan Cloud
  • Cara Menggunakan Domain Pribadi untuk Aplikasi Moodle

Quick Start

  • Getting Started
  • Dashboard Guide
  • Welcome Tutorial
  • Software Stack Versions

Platform Overview

  • What is Platform-as-a-Service
  • Concept and Terminology
  • What are System Containers
  • What are Application Containers
  • Isolated Containers
  • What is Auto-Clustering
  • Cloudlet

Containers

  • Container Types
  • Container Image Requirements
  • Connect to Custom Container
  • Custom Container SSH Access
  • Private Registry Inside PaaS
  • Building Custom Containers

Environment Management

  • HTTP Headers
  • Clone Environment

Application Settings

  • Configuration File Manager
  • Managing Timezone Settings

Development Tools

  • FTP/FTPS Support

Account and Pricing

  • Account Registration
  • Account Types
  • Account Statuses
  • Account Password Reset
  • Quotas System
  • Two Factor Authentication
  • Personal Access Token
  • Upgrade and Refill Account
  • Pricing Model Overview

Architecture Overview

  • Cluster Overview
  • Cluster Orchestrator

Container Deployment

  • Certified Containers Deployment
  • Custom Containers Deployment
  • Docker Engine Deployment

Container Redeploy

  • Redeploy Overview
  • Preserve Data

Container Configuration

  • Configuration Tools
  • Container Environment Variables
  • Container Linking
  • Container Volumes
  • Container Ports
  • Container Run Configuration

Environment Variables

  • Java Options and Arguments
  • Default Environment Variables
  • Custom Environment Variables

Environment Groups

  • Overview
  • Group Creation
  • Navigation Between Groups
  • Group Management
  • Environment Isolations

Scaling and Clustering

  • Automatic Vertical Scaling
  • Horizontal Scaling
  • Automatic Horizontal Scaling
  • Data Synchronization
  • File Synchronization in Cluster
  • Auto-Clustering of Instances

Built-In Monitoring

  • Log Files
  • Statistics
  • Load Alerts

SSH

  • Generate SSH Key
  • Add SSH Key
  • SSH Access

Resource Charging

  • Pricing FAQ
  • Charged Resources
  • Monitoring Consumed Resource

Kubernetes

  • GitLab CI/CD Integration
  • Cluster Automated Upgrade
  • Public IP for Access to Kubernetes
  • Traefik v2 Ingress Controller

Kubernetes Cluster

  • Kubernetes Overview
  • System Requirements
  • Cluster Installation
  • Cluster Versions

Managing Kubernetes

  • Cluster Access
  • Access Controll
  • Cluster Troubleshooting
  • Cluster Upgrade
  • Velero Backup

Kubernetes Scalability

  • Vertical Scalling
  • Horizontal Scalling

Application Deployment

  • Helm Integration
  • YAML Deployments
  • Internal Networking
  • Exposing Services
  • Creating Ingresses

Persistent Data

  • Volume Provisioner
  • Persistent Volume Claim
  • Custom Storage

Domain Name Management

  • Swap Domain
  • Multiple Domain for PHP
  • Container DNS Hostnames

External Access to Applications

  • Shared Load Balancer
  • Public IP
  • Container Firewall
  • Endpoints

Traffic Distributor

  • Traffic Distributor Overview
  • Routing Methods
  • Traffic Distributor Installation
  • Traffic Distributor Integration
  • Use Case

SSL

  • Secure Socket Layer
  • Built-In SSL
  • Custom SSL
  • Custom SSL via SLB

Scheduling Configuration

  • Setting Up Cronjob
View Categories
  • Docs
  • Panduan Penggunaan Layanan & Platform Jagoan Cloud
  • Jagoan Cloud PaaS
  • Panduan Dasar
  • Containers
  • Building Custom Containers

Building Custom Containers

5 min read

Dengan Jagoan Cloud, proses membuat Docker image milikmu sendiri bisa jadi jauh lebih sederhana. Caranya yaitu dengan membangun image baru berdasarkan image yang sudah ada — dalam hal ini, menggunakan template dasar AlmaLinux 9 yang sudah disediakan oleh platform.

Dengan pendekatan ini, Kamu tidak perlu mengatur semuanya dari nol. Semua konfigurasi dasar yang sudah ada di dalam image “parent” bisa langsung Kamu manfaatkan, dan Kamu hanya perlu menambahkan penyesuaian yang Kamu butuhkan.

building WildFly image

Cara paling umum untuk membuat Docker image adalah dengan menyusun sebuah Dockerfile — yaitu sebuah file teks sederhana berisi instruksi-instruksi build yang akan dibaca dan dijalankan oleh Docker daemon secara otomatis.

Compose Dockerfile #

Pertama-tama, buat dulu sebuah file teks kosong — file ini akan menjadi tempat kamu menuliskan semua perintah untuk membangun image, yaitu melalui Dockerfile.

 


📝 NOTE
Sebelum mulai, pastikan Kamu sudah menginstal Docker CE (Community Edition) versi yang sesuai dengan sistem operasi (OS) yang kamu gunakan.Docker CE ini wajib ada agar kamu bisa menjalankan semua perintah yang akan dijelaskan setelah ini, seperti membangun image, menjalankan container, atau mengunggah image ke registry.

Kemudian ikuti langkah-langkah di bawah. Dalam panduan ini, kita akan membuat untuk WildFly docker custom.

1. Tentukan image dasar:

FROM jelasticdocker/almalinuxbase:latest

Kita pakai image almalinuxbase dari Virtuozzo sebagai fondasi.

2. Tambahkan informasi metadata dan variabel:

LABEL maintainer="Virtuozzo International GmbH."

ENV WILDFLY_VERSION=36.0.0.Final
ENV ADMIN_USER=admin
ENV ADMIN_PASSWORD=admin

Menyimpan versi WildFly yang akan dipakai dan user login ke admin panel.

3. Install Java dan tar:

RUN dnf -y install java-17-openjdk-devel tar && dnf -y update

Karena WildFly butuh Java untuk bisa jalan.

4. Unduh dan ekstrak WildFly ke folder /opt:

RUN cd /opt && curl -LO https://github.com/wildfly/wildfly/releases/download/$WILDFLY_VERSION/wildfly-$WILDFLY_VERSION.tar.gz \

&& tar xf wildfly-${WILDFLY_VERSION}.tar.gz \
&& rm wildfly-${WILDFLY_VERSION}.tar.gz

5. Buat shortcut (symlink) supaya folder WildFly lebih mudah diakses:
RUN ln -s /opt/wildfly-$WILDFLY_VERSION /opt/wildfly

6. Buat file konfigurasi utama WildFly:

RUN echo -en "WILDFLY_SH=/opt/wildfly/bin/standalone.sh\n\

WILDFLY_SERVER_CONFIG=standalone.xml\n\
WILDFLY_CONSOLE_LOG=/var/log/wildfly/console.log\n\
WILDFLY_OPTS=\"-b 0.0.0.0 -bmanagement=0.0.0.0 -Djboss.management.http.port=4949 -Djboss.management.https.port=4848

7. Copy file service WildFly ke SystemD:

RUN cp /opt/wildfly-$WILDFLY_VERSION/bin/systemd/wildfly-standalone.service /etc/systemd/system/wildfly.

8. Aktifkan WildFly sebagai service serta buat user & folder log:

RUN systemctl enable wildfly && mkdir -p /var/log/wildfly && adduser wildfly && \
chown -R wildfly:wildfly /opt/wildfly-$WILDFLY_VERSION /opt/wildfly /var/log/wildfly

9. Buat SSL self-signed untuk admin panel:

RUN cd /opt/wildfly/standalone/configuration && \

keypass=password; keytool -genkeypair -alias serverkey -keyalg RSA -keysize 4096 -validity 7360 \
-keystore application.keystore -keypass $keypass -storepass $keypass -dname "cn=Server Administrator,o=Acme,c=GB" && \
chown wildfly:wildfly application.keystore && \
xmlstarlet ed -L -N s="urn:jboss:domain:community:20.0" -i "s:server/s:management/s:management-interfaces/s:http-interface/s:socket-binding" -t attr -n https -v "management-https" standalone.xml && \
xmlstarlet ed -L -N s="urn:jboss:domain:community:20.0" -i "s:server/s:management/s:management-in

10. Tambahkan user admin untuk WildFly:

RUN /opt/wildfly/bin/add-user.sh --user $ADMIN_USER --password $ADMIN_PASSWORD --silent --enable

11. Ubah link default WildFly agar redirect ke port 4848:

RUN sed -i "s/<a href=\"\/console\">/<a href=\"\/console\" onclick=\"javascript:event.target.port=4848;event.targ

12. Tambahkan locale en_US:

RUN localedef -i en_US -f UTF-8 en_US.UTF-8

13. Buka port yang dibutuhkan WildFly:

EXPOSE 22 80 443 8080 8743 9990 9993 8009 4848 4949

14. Atur perintah default saat container dijalankan:

ENTRYPOINT ["/bin/bash"]

Jangan lupa untuk save semua settings yang sudah di deklarasikan

Add Image to Repository #

Setelah Dockerfile-nya sudah siap, sekarang kamu sudah bisa membangun image WildFly kamu sendiri, lalu mengunggahnya (push) ke repository Docker — baik publik seperti Docker Hub, atau yang private (misalnya registry kamu sendiri di Virtuozzo).

 


📝 NOTE
Sebelum mulai, pastikan Kamu sudah menginstal Docker CE (Community Edition) versi yang sesuai dengan sistem operasi (OS) yang kamu gunakan.Docker CE ini wajib ada agar kamu bisa menjalankan semua perintah yang akan dijelaskan setelah ini, seperti membangun image, menjalankan container, atau mengunggah image ke registry.

 

1. Jalankan Perintah Build

sudo docker build -t {image_name} {dockerfile_location}

Penjelasan:

  • {image_name} → nama image yang kamu inginkan. Kamu bisa menambahkan tag versi jika mau, contohnya:
    examplerepo/wildfly:latest
  • {dockerfile_location} → lokasi folder tempat Dockerfile berada.
    Kalau Dockerfile ada di direktori saat ini, cukup tulis .

docker build

 

2. Kamu seharusnya akan menerima pesan bahwa proses build berhasil, lengkap dengan ID dari image baru kamu. Untuk memastikan image tersebut tersedia di perangkat kamu, kamu bisa meminta daftar semua template lokal dengan perintah:
sudo docker images

docker images

 

3. Terakhir, kamu perlu mengunggah (push) image kamu ke registry dengan perintah berikut: sudo docker push {image_name} 

Di sini, {image_name} harus sama persis dengan yang kamu gunakan saat proses build di langkah pertama. Kamu juga akan diminta untuk melakukan konfirmasi kepemilikan akun (dengan memasukkan username, password, dan alamat email yang sesuai) agar proses ini bisa selesai.

docker push

Deploy Image #

Begitu image Kamu berhasil disimpan di dalam repository, image tersebut langsung tersedia untuk digunakan di platform dan bisa ditambahkan ke environment melalui Docker board yang sudah terintegrasi di bagian topology wizard dalam dashboard.

Jadi, klik tombol New Environment di bagian atas dashboard, lalu masuk ke tab Custom di jendela wizard yang terbuka, dan klik tombol Select Image.

1. Di sini, Lamu bisa menggunakan tab Search (untuk menambahkan image dari Docker Hub) atau berpindah ke bagian Custom, di mana kamu bisa mengelola image dari berbagai jenis (termasuk image private) dan menyimpan template agar bisa diakses dengan mudah.

add new custom image

 

Kita akan bahas opsi yang kedua, yaitu melalui bagian Custom. Setelah masuk ke sana, pilih layer environment yang dibutuhkan di sebelah kiri (misalnya Application Servers), lalu klik tombol Add New Image.

2. Di jendela Add New Image yang muncul, masukkan identifier image kamu di kolom Name dengan format berikut:

[{registry_hostname}/]{account_namespace}/{image_name}

Bagian {registry_hostname} bisa dilewati jika kamu menggunakan registry resmi Docker Hub.

Kalau kamu menggunakan repository yang bersifat private, kamu juga perlu mengisi kolom Username dan Password dengan kredensial yang sesuai.

custom image repository

Kami menggunakan repository publik Docker Hub yang ada di Registry Hub pusat, jadi kamu hanya perlu memasukkan nama repository-nya saja dalam format pendek. Klik Add jika sudah siap.

3. Setelah itu, image Kamu akan muncul dalam daftar. Sekarang, image tersebut bisa langsung ditambahkan ke topology hanya dengan sekali klik. Selain itu, template ini juga akan disimpan dan tetap muncul di daftar Custom, jadi kamu bisa dengan mudah menemukannya lagi saat membuat environment berikutnya (selama belum kamu hapus dari daftar).

select custom image

Selesaikan konfigurasi lainnya secara mandiri (detail mengenai opsi yang tersedia bisa kamu baca di panduan yang sudah disediakan), lalu lanjutkan hingga proses pembuatan environment selesai.

4. Begitu environment dengan image yang sesuai sudah muncul di dashboard, Kamu bisa mengaksesnya lewat tombol Open in Browser yang tersedia.

open in browser

 


📝 NOTE

Kalau Kamu tidak menempatkan template kamu di layer Application Servers atau Balancing, Kamu perlu menggunakan tombol Open in Browser yang ada di samping container tertentu untuk membukanya.

 

Hasilnya, kamu akan melihat halaman awal (start page) default dari WildFly, yang menandakan bahwa semuanya telah dikonfigurasi dengan benar dan container yang baru kamu buat sudah berjalan dengan baik.

WildFly home page

Kamu juga bisa mengakses WildFly admin panel dengan mengklik tautan Administration Console. Gunakan kredensial login yang sudah kamu tentukan di dalam dockerfile (dalam contoh ini: admin/admin). Kami sangat menyarankan untuk segera mengganti kredensial tersebut dengan yang lebih aman.

Dengan cara yang sama, Kamu juga bisa mempersiapkan dan membuat image lain sesuai kebutuhan, lalu menjalankannya dengan mudah di dalam platform!

What are your Feelings

Share This Article :

  • Facebook
  • X
  • LinkedIn
  • Pinterest
Still stuck? How can we help?

How can we help?

Updated on July 28, 2025
Private Registry Inside PaaS

Powered by BetterDocs

Daftar Isi
  • Compose Dockerfile
  • Add Image to Repository
  • Deploy Image
© 2022 Jagoan Cloud