DevOps AI
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud
No Result
View All Result
DevOpsAI
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud
No Result
View All Result
DevOpsAI
No Result
View All Result
Home DevOps & Cloud

Thay đổi cấu hình thông qua biến môi trường

Quân Nguyễn by Quân Nguyễn
1 Tháng 5, 2025
in DevOps & Cloud
0
Thay đổi cấu hình thông qua biến môi trường
Share on FacebookShare on Twitter

Thông thường để sửa đổi file trong container ta có rất nhiều cách, cách đơn giản nhất là tạo một file ở ngoài máy host, sau đó mount vào container, hoặc có thể exec vào container và sửa file, trong bài viết này sẻ hướng dẫn bạn một cách khác là thay đổi  nội dung file thông qua biến môi trường.

Build time trong docker

Build time là quá trình xây dựng image từ dockerfile, những gì được định nghĩa ở giai đoạn này sẽ không thể thay đổi sau khi build.

Run time trong docker

Run time là giai đoạn khởi tạo container, trước khi tạo container sẽ là giai đoạn chuẩn bị bao gồm những việc như giải nén image,  chạy các tiến trình…vv , chúng ta sẽ tận dụng giai đoạn này để docker cấu hình file tùy chỉnh của chúng ta thay vì những cách làm ở trên.

Related Post

Cấu hình build Docker trong Jenkins

25 Tháng 4, 2025
Hướng dẫn cài đặt Kubernetes trên Ubuntu 22.04

Hướng dẫn cài đặt Kubernetes trên Ubuntu 22.04

1 Tháng 5, 2025

Người sáng lập của Docker vừa cho ra sản phẩm mới

14 Tháng 8, 2022

Lưu trữ artifact lên Nexus thông qua Jenkins

25 Tháng 4, 2025

soucre của hướng dẫn này được để ở đây, các bạn có thể clone về để thực hành, project này khá đơn giản chỉ gồm một file html và dùng nginx để host file này, sau khi build và start container,

Run project

Sau khi clone về, bạn mở thư mục lên bằng vs code , sau đó mở terminal(nếu dùng mac hoặc linux). Vào thư mục docker > _ , sau đó kéo thả file build.sh vào terminal và nhấn enter.

File script này sẻ build docker image, sau khi build xong làm tương tự đối với file run.sh

bạn truy cập vào localhost:8080, mặc định trang web sẻ hiển thị như thế này.

Đổi màu nền cho web

Để đổi màu nền cho web bạn thay đổi mã màu (html color code) trong file .env

IMAGE_TAG='nginx-backgroundweb'
CONTAINER_NAME='nginx-backgroundweb-c'
          PORT=8080
DOCKER_NETWORK='nginx-backgroundweb-n'
# env.runtime for index.html
     VAR_COLOR=06FCE6

đổi VAR_COLOR=06FCE6  thành VAR_COLOR=#FF5733  , chạy lại file run.sh  và kiểm tra kết qủa.

Khá là hay đúng không nào 🙂

Cách hoạt động

Trong thư mục của bạn clone về có một file là index.tpl.html, file này là file html có chứa một biến ($VAR_COLOR)

<style>
    body {
        background-color: $VAR_COLOR;
        /*background-color: coral;*/
        /*background-color: #0c88b4;*/
        /*background-color: rgba(0,122,333, .5);*/
    }
</style>
<body data-rsssl=1>
    <div>This is web app with customize-able background color</div>
</body>

khi khởi động container lên thì giá trị của biến sẻ được nạp vào từ môi trường của container thông qua một script:

#!/usr/bin/env bash

env | grep -c "VAR_COLOR"  # check env exist
    [ $? = 1 ] && (echo 'Envvar $VAR_COLOR is required, please fill via prama -e into docker run'; kill $)
        echo $VAR_COLOR && envsubst '$VAR_COLOR' < ./index.tpl.html > ./index.html && 
            cp ./index.html /usr/share/nginx/html && 
            cat /usr/share/nginx/html/index.html  && 
            nginx -g 'daemon off;'

giải thích sơ về file này là nó sẻ dùng lệnh envsubst  lấy mã màu từ môi trường và nạp vào biến $VAR_COLOR sau đó ghi thành file mới với tên là index.html sau đó cpy vào thư mục /usr/share/nginx/html.

Dockerfile

Copy nhưng file cần thiết vào container và dùng CMD để chạy script.

FROM nginx
WORKDIR /app

#   =create index.html from index.tpl.html with param $VAR_COLOR from envvar
COPY envsubst.sh .
COPY index.tpl.html .

CMD ./envsubst.sh
Tags: dockerdocker composeenvironment variable
Quân Nguyễn

Quân Nguyễn

Related Posts

DevOps & Cloud

Cấu hình build Docker trong Jenkins

by devopsify
25 Tháng 4, 2025
Hướng dẫn cài đặt Kubernetes trên Ubuntu 22.04
DevOps & Cloud

Hướng dẫn cài đặt Kubernetes trên Ubuntu 22.04

by devopsify
1 Tháng 5, 2025
Tin tức

Người sáng lập của Docker vừa cho ra sản phẩm mới

by Quân Nguyễn
14 Tháng 8, 2022
Next Post
Sử dụng kho lưu trữ git riêng tư làm terraform module

Sử dụng kho lưu trữ git riêng tư làm terraform module

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Recommended

Các website demo hay được sử dụng cho thực hành Automation Test

Các website demo hay được sử dụng cho thực hành Automation Test

11 Tháng 6, 2025
Hướng dẫn cài đặt Kubernetes trên Ubuntu 22.04

Hướng dẫn cài đặt Kubernetes trên Ubuntu 22.04

1 Tháng 5, 2025
Cài đặt Maven trên Windows

Cài đặt Maven trên Windows

11 Tháng 6, 2025
Cài đặt Grafana – Loki – Promtail monitoring log Container

Cài đặt Grafana – Loki – Promtail monitoring log Container

1 Tháng 5, 2025
Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

16 Tháng 6, 2025
MCP server 2025 tốt nhất : Hướng dẫn chọn & bảo mật

MCP server 2025 tốt nhất : Hướng dẫn chọn & bảo mật

16 Tháng 6, 2025
DevOpsify Check Tool hỗ trợ MCP – Tự động hóa kiểm tra qua AI Claude & VS Code

DevOpsify Check Tool hỗ trợ MCP – Tự động hóa kiểm tra qua AI Claude & VS Code

13 Tháng 6, 2025
GitHub Action DevOpsify Check Tool – Tự động kiểm tra bảo mật & hiệu suất

GitHub Action DevOpsify Check Tool – Tự động kiểm tra bảo mật & hiệu suất

11 Tháng 6, 2025
DevOpsify

Cộng đồng DevOps Việt Nam chia sẽ kiến thức giúp tăng tốc quá trình phát triển ứng dụng và tự động hóa trong lĩnh vực Cloud DevOps & AI.

Bài viết mới

  • Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent
  • MCP server 2025 tốt nhất : Hướng dẫn chọn & bảo mật
  • DevOpsify Check Tool hỗ trợ MCP – Tự động hóa kiểm tra qua AI Claude & VS Code

Categories

  • AI & Automation
  • Bảo mật
  • Chưa phân loại
  • DevOps & Cloud
  • Tin tức
No Result
View All Result
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud

© 2025 DevOpsify