2016-09-26 22 views
5

Tôi cần chuyển một số đối số cho lệnh docker build của mình. Tôi hiểu rằng điều này có thể được thực hiện bằng cách sử dụng hướng dẫn ARG trong số Dockerfile. Bây giờ giả sử tôi có những điều sau đây trong số Dockerfile của tôi.Cây đậu đàn hồi và hướng dẫn ARG của Dockerfile

ARG myvar 

và sử dụng lệnh docker build --build-arg mvar=myOwnVar ..., điều này sẽ hiệu quả.

Tuy nhiên, tôi đang sử dụng AWS Elastic Beanstalk với Docker để tạo hình ảnh và triển khai hình ảnh trong vùng chứa. Vì vậy, các câu hỏi là,

  1. Điều này có thể thực hiện được không?
  2. Nếu, có, làm cách nào tôi có thể đảm bảo rằng EBS EB chuyển giá trị cho các đối số này?

Cảm ơn Sushil

+0

wow từ ' 16, nhưng vẫn không có câu trả lời, tôi có tình trạng khó khăn tương tự. Tôi đã mất cả ngày về điều này – rkmax

Trả lời

3

hôm qua tôi bắt đầu sử dụng AWS EB, tôi đã hạnh phúc, hôm nay tôi cần phải vượt qua một số ARG để xây dựng của tôi, các mặt hàng này trên các tài liệu

enter image description here

Rất buồn

nguồn: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options-specific.html

Cách giải quyết

Một giải pháp khả thi là những gì tôi đang làm hiện nay, trước khi chạy Docker xây dựng thêm một số tập tin vào EB và việc sử dụng nó từ Dockerfile

dụ, cho phép giả sử tôi cần một tên var TOKEN trên một cái gì đó Docker tôi như

RUN curl http://somemething.comtoken=$TOKEN 

Vì vậy whay tôi làm là

thêm một tập tin kịch bản mới

ADD ./curl-thing.sh /curl-thing.sh 

và nội dung của

if [ -f "./.env"]; then 
    source ./.env 
fi 

bây giờ thêm một tên tập tin .ebextensions/my-env.config, tên không có vấn đề quan trọng chỉ tồn tại trên .ebextensions forlder và có phần mở rộng .config

files: 
    "/opt/elasticbeanstalk/hooks/appdeploy/pre/02_mix_environment.sh": 
    mode: "000755" 
    owner: root 
    group: root 
    content: | 
     #!/usr/bin/env bash 
     EB_APP_DEPLOY_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_deploy_dir) 
     TOKEN=$(/opt/elasticbeanstalk/bin/get-config environment -k TOKEN) 
     echo "export TOKEN=${TOKEN}" >> ${EB_APP_DEPLOY_DIR}/.env 
Các vấn đề liên quan