Dalam dunia pengembangan web modern, Docker telah menjadi salah satu alat yang paling kuat dan populer. Dengan menggunakan Docker, Anda dapat dengan mudah menyatukan aplikasi dalam wadah independen yang ringan dan portabel, yang berjalan dengan konsisten di berbagai lingkungan. Artikel ini akan membahas langkah-langkah mendalam tentang bagaimana mengatur Docker dengan file HTML statis untuk meng-host situs web Anda dengan mudah dan efisien.
Pengenalan Docker dan Manfaatnya dalam Hosting Situs Web Statis
Docker adalah platform sumber terbuka yang memungkinkan para pengembang untuk mengembangkan, menguji, dan menjalankan aplikasi dalam wadah. Konsep ini memungkinkan aplikasi dan semua dependensinya diisolasi dari lingkungan tempat mereka berjalan. Manfaat utama Docker dalam hosting situs web statis adalah portabilitas, skalabilitas, dan efisiensi sumber daya.
Portabilitas memungkinkan Anda untuk menjalankan wadah di mana saja, baik di lingkungan pengembangan maupun produksi, dengan hasil yang konsisten. Skalabilitas memungkinkan Anda untuk dengan mudah mengelola beberapa wadah dan menyeimbangkan beban lalu lintas. Efisiensi sumber daya mengoptimalkan penggunaan server Anda karena Anda hanya menjalankan apa yang diperlukan oleh wadah.
TUTORIAL :
Apakah Anda siap meluncurkan situs web statis Anda dengan HTML, Docker, dan NginxProxyManager. Lihat ini dan lakukan sendiri dengan cukup mudah.
Dockerfile
FROM node:lts-alpine
# install simple http server for serving static content
RUN yarn global add serve
# make the 'app' folder the current working directory
WORKDIR /usr/src/website
# copy project files and folders to the current working directory (i.e. 'app' folder)
COPY . .
EXPOSE 8080
CMD [ "serve", "-p", "8080"]
docker-compose.yml
version: "3.3"
services:
ngxinxproxymanager:
image: "jc21/nginx-proxy-manager:latest"
container_name: yourproject-ngxinxproxymanager
restart: unless-stopped
ports:
- "80:80" # Public HTTP Port
- "443:443" # Public HTTPS Port
- "81:81" # Admin Web Port
# Add any other Stream port you want to expose
# - '21:21' # FTP
networks:
- yourproject-network
environment:
# the SQLite DB file within the container
DB_SQLITE_FILE: "/data/database.sqlite"
# Uncomment this if IPv6 is not enabled on your host
# DISABLE_IPV6: 'true'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
website:
build:
context: ../website
dockerfile: ../docker/website.Dockerfile
container_name: yourproject-website
restart: always
ports:
- "8081:8080"
networks:
- yourproject-network
networks:
yourproject-network:
driver: bridge
volumes:
yourproject-db:
driver: local
driver_opts:
type: none
o: bind
device: "${PWD}/db-data"
إرسال تعليق