Pinjam Google Shell untuk Pasang Linux Desktop
Kita memang sedang berada di zaman yang ajaib. Tidak kebayang 10 tahun yang lalu, kita bisa memiliki server dengan mudah dan gratis. Dari sistem operasi, tempat hosting, sampai basis data diberikan cuma-cuma tanpa batas waktu. Biarpun tenaganya tidak maksimal tapi cukup membuatmu bersyukur.
Salah satu layanan itu adalah Google Shell, yang merupakan bagian dari Google Developers. Google Shell ini seperti kalian memilki mesin Linux sendiri dan dihadiahi segala macam fitur yang canggih, salah satunya adalah Docker.
Dengan bantuan Docker ini, kalian tidak hanya lagi mengakses lewat terminal tetapi bisa menikmati Linux versi desktop. Aku coba-coba membuat Dockerfile
sendiri yang walaupun tidak maksimal, kalian tetap bisa mengotak-atik Linux versi Docker ini melalui terminalnya. Oh iya, untuk mengakses mesin Linux itu kalian membutuhkan xrdp
dan ngrok
.
Berikut script-nya:
FROM ubuntu:latest
ENV DEBIAN_FRONTEND noninteractive
RUN apt update && apt upgrade -y
RUN apt install -y curl sudo
RUN curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null \
&& echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | tee /etc/apt/sources.list.d/ngrok.list
RUN apt update && apt install -y xfce4 xrdp ngrok
COPY run.sh /usr/bin/
RUN chmod +x /usr/bin/run.sh
ENTRYPOINT ["/usr/bin/run.sh"]
Buat berkas run.sh
dengan isi sbb:
#!/bin/bash
useradd -m ubuntu -p $(openssl passwd ubuntu)
usermod -aG sudo ubuntu
ngrok config add-authtoken [TOKEN]
rm -rf /var/run/xrdp-sesman.pid
rm -rf /var/run/xrdp.pid
rm -rf /var/run/xrdp/xrdp-sesman.pid
rm -rf /var/run/xrdp/xrdp.pid
service xrdp start
ngrok tcp 3389
Silakan ganti [TOKEN]
ini dengan mengambil nilai yang ada dari dasbor ngrok.
Langkah selanjutnya, kalian membuat image Docker ini:
docker build -t ubuntu-desktop .
Kemudian buat container dengan menjalankan perintah berikut:
docker run -it ubuntu-desktop
Setelah kalian menjalankan container, kalian secara otomatis masuk ke terminal. Di sini kalian bisa dengan bebas mengatur dan menambah apa pun seperti halnya pada mesin Linux kalian sendiri.
Begini output dari ngrok
:
Session Status online
Account Ronald Nababan (Plan: Free)
Version 3.6.0
Region Asia Pacific (ap)
Latency 2ms
Web Interface http://127.0.0.1:4040
Forwarding tcp://0.tcp.ap.ngrok.io:12160 -> localhost:3389
Gunakan Remmina atau Remote Desktop untuk mengakses mesin ini. Masukkan 0.tcp.ap.ngrok.io:12160
(sesuai dengan alamat forwarding di atas) dan masukkan pengguna ubuntu
dengan sandi ubuntu
saat diminta otentikasi.