2015-04-18 15 views
5

tôi đã nhận thấy rằng trong một số Dockerfile các biến môi trường được chỉ định bằng biểu thức đặc biệt, đó là thực hiện một số loại thay thế biến, chẳng hạn như môi trường:biến với dấu hoa thị tăng gấp đôi trong Dockerfile

ENV PASSWORD **Random** 
ENV NAME **False** 

tôi không thể tìm thấy bất kỳ tài liệu tham khảo để những biểu hiện đó trong tài liệu chính thức của Docker.

Nơi tôi có thể tìm thấy danh sách các biểu thức có thể được sử dụng trong Dockerfile và ý nghĩa của chúng là gì?

+1

Bạn có ví dụ không? Một liên kết đến trung tâm Docker với Dockerfile như vậy? – VonC

+0

Hãy xem https://registry.hub.docker.com/u/tutum/mysql/dockerfile/ ví dụ – lec00q

Trả lời

1

Quy ước không chính thức để sử dụng các biến này làm biến mẫu. Chúng sẽ được thay thế trong thời gian chạy.

Hoặc bạn có thể thay thế chúng bằng cách sử dụng công tắc -edocker run.

Ví dụ:

ENV MYSQL_USER admin 
ENV MYSQL_PASS **Random** 

# Replication ENV 
ENV REPLICATION_MASTER **False** 
ENV REPLICATION_SLAVE **False** 

Nếu bạn có một cái nhìn vào kịch bản bắt đầu bạn có thể thấy như sau:

if [ "$MYSQL_PASS" = "**Random**" ]; then 
    unset MYSQL_PASS 
fi 

PASS=${MYSQL_PASS:-$(pwgen -s 12 1)} 

Nếu giá trị biến là **Random** chúng ta hãy thay thế nó bằng một mật khẩu được tạo ngẫu nhiên.

Các vấn đề liên quan