Điểm:0

Làm cách nào để gọi tệp .env vào dự án Django chạy trong bộ chứa Docker trên máy chủ K8s?

lá cờ es

Tôi rất có thể chỉ cần một gợi ý để đi đúng hướng.

Tôi có một bộ chứa docker chạy ứng dụng Django bằng gunicorn và nginx. Ứng dụng Django này hiện đang nhận các biến môi trường từ tệp .env.

TỪ trăn: núi cao
TIẾP XÚC 8000

CHẠY bản cập nhật apk
RUN apk add --no-cache git gcc musl-dev libffi-dev libxml2-dev libxslt-dev gcc swig g++
RUN apk add --no-cache jpeg-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff- dev tk-dev tcl-dev
RUN apk thêm --no-cache bash ffmpeg libmagic
CHẠY cài đặt pip python3 -m pip --nâng cấp pip
CHẠY python3 -m cài đặt pip --upgrade setuptools

CHẠY mkdir /opt/ứng dụng
WORKDIR /opt/ứng dụng
SAO CHÉP . .
CHẠY cài đặt pip python3 -m /root/d12f/

CHẠY cài đặt pip3 -r tests.txt
CHẠY pip3 cài đặt gunicorn
CMD sh -c 'gunicorn --conf python:app.gunicorn_conf app.wsgi --bind 0.0.0.0:8000 --reload --log-level info --access-logfile - --timeout 360 --error-logfile - '

Tất nhiên không có tệp .env trong repo vì đây sẽ là rủi ro bảo mật.

Hình ảnh Docker đang được tạo bởi github và được lưu trữ trong Gói GitHub riêng. Sau đó, hình ảnh docker này đang được sử dụng để chạy trên Kubernetes.

Tôi đang cố tìm giải pháp tốt nhất để đưa tệp .env vào

/opt/app/app/.env

dưới dạng tệp cục bộ.

Tôi không muốn sử dụng các biến môi trường toàn cầu, nếu có thể.

Cảm ơn cho bất kỳ đề nghị.

Điểm:1
lá cờ tz

Sau đó, hình ảnh docker này đang được sử dụng để chạy trên Kubernetes.

lưu trữ của bạn .env tập tin như một Bí mật với kubectl [1]:

kubectl tạo ứng dụng chung bí mật-env --from-file=.env=/path/to/your/.env

Sau đó, bạn có thể gắn kết Bí mật như một khối lượng trong của bạn vỏ Định nghĩa [2], [3]:

---
phiên bản api: v1
loại: Vỏ
...
thông số kỹ thuật:
  hộp đựng:
    ...
  - tên: ứng dụng
    hình ảnh: hình ảnh của bạn: thẻ
    khối lượngMount:
    - tên: app-env-vol # gắn tên âm lượng
      mountPath: /opt/app/app # đến /opt/app/app
      readOnly: true # là chỉ đọc
    ...
  khối lượng:
    ...
  - tên: app-env-vol # tạo âm lượng app-env
    bí mật:
      secretName: app-env # với tên bí mật.
    ...

Ứng dụng của bạn sẽ có thể truy cập envtội /opt/app/app/.env.

Điểm:-2
lá cờ cn

Sử dụng quên đi hoặc lệnh cli của nhà cung cấp đám mây để kéo nó xuống khi chạy.

Bạn phải sử dụng một số cơ chế xác thực để bảo vệ nó trong "kho lưu trữ tệp cấu hình" chẳng hạn như IAM và Bộ chứa an toàn. Hoặc cửa hàng cấu hình của bạn cũng sẽ chấp nhận tệp.

mv tập tin vào opt dir thích hợp.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.