Tôi đang cố gắng đặt biến môi trường trong vùng chứa docker trong quá trình xây dựng nhưng không thành công. Đặt chúng khi sử dụng lệnh chạy nhưng tôi cần đặt chúng trong quá trình xây dựng.Làm cách nào để đặt biến môi trường trong khi xây dựng trong docker
Dockerfile
FROM ubuntu:latest
ARG TEST_ENV=something
lệnh Tôi đang sử dụng để xây dựng
docker build -t --build-arg TEST_ENV="test" myimage .
Chạy
docker run -dit myimage
Tôi đang kiểm tra các biến môi trường có sẵn bằng cách sử dụng
docker exec containerid printenv
và kết quả là
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=e49c1abfd58b
TERM=xterm
no_proxy=*.local, 169.254/16
HOME=/root
TEST_ENV là không có mặt
Sử dụng 'ENV' đã thêm biến môi trường nhưng sử dụng' docker build -t temp - build-arg BUILD_TIME = def' in "Một hoặc nhiều build-args [BUILD_TIME] không được tiêu thụ, không xây dựng. " Thêm 'ARG BUILD_TIME_ARG = mặc định' và' ENV BUILD_TIME = $ BUILD_TIME_ARG' được trợ giúp. Bạn có thể thêm nó vào câu trả lời của bạn không? Cảm ơn sự giúp đỡ. –
Tôi vừa nhận ra rằng bạn có thể đặt 'ARG' với cùng tên với' ENV'. 'ARG BUILD_TIME = mặc định'' ENV BUILD_TIME = $ BUILD_TIME' –
Trớ trêu thay Câu trả lời của Elton không đúng. Lời bình luận cuối cùng của Michael nhấn móng tay trên đầu và cho thấy làm thế nào để thực sự thiết lập một biến môi trường thông qua một xây dựng (tại thời điểm viết bài này). –