dousou1878 2018-01-23 13:20
浏览 4928

如何从.env文件获取环境变量并传递给Dockerfile?

对于开发人员来说,这似乎是一个巨大的疏忽,因为我无法理解您不希望映像构建了解.env变量的用例。

我运行Laravel,并使用.env文件访问一些AWS密钥。当我试图通过Dockerfile构建映像时,php compsoer autooload失败了,因为我的项目中的一个类试图使用.env变量实例化AWS S3Client(来自php SDK)。我根本不知道如何将环境变量从.env文件传递到Dockerfile。到目前

为止,我已经得到了这样的结果,它不是在进行映像构建,但是如果我只是运行容器,当然可以运行文件。

resource:
build: 
  context: ../server
  args:
    - AWS_REGION=${AWS_REGION}
    - AWS_VERISON=${AWS_VERISON}
    - AWS_S3_BUCKET_NAME=${AWS_S3_BUCKET_NAME}
    - AWS_S3_CREDENTIALS_SECRET=${AWS_S3_CREDENTIALS_SECRET}
    - AWS_S3_CREDENTIALS_KEY=${AWS_S3_CREDENTIALS_KEY}
env_file: ./variables.env
ports:
  - "8080:80"
depends_on:
  - db
  - nosql
volumes:
  - ../server/app:/var/www/app:ro

Dockerfile,简称为Dockerfile,因为其他文件都正常工作,而且它是一个巨大的文件。

ARG AWS_REGION
ARG AWS_VERISON
ARG AWS_S3_BUCKET_NAME
ARG AWS_S3_CREDENTIALS_SECRET
ARG AWS_S3_CREDENTIALS_KEY

如何将变量传递给构建文件?下面是运行Composer脚本并创建容器入口点的docerfile部分:

RUN composer dumpautoload && \
php artisan clear-compiled --no-interaction && \
php artisan optimize --no-interaction

ENTRYPOINT  php artisan config:cache && \
        supervisord -n && \
        tail -F /var/www/storage/logs/*
</div>
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 esp8266控制共阳极wrgb灯板无法关闭所有led灯
    • ¥100 python读取速度问题
    • ¥15 stm32f407使用DMA问题
    • ¥15 您好 这个API接口该怎么弄 网站搭建好了 API也有 现在就不知道该怎么填写API 不知道怎么用
    • ¥88 用uniapp写一个多端的程序,用到高德地图,用高德的JSAPI吗?
    • ¥20 关于#c++#的问题:水果店管理系统
    • ¥30 dbLinq最新版linq sqlite
    • ¥20 对D盘进行分盘之前没有将visual studio2022卸载掉,现在该如何下载回来
    • ¥15 完成虚拟机环境配置,还有安装kettle
    • ¥15 有人会搭建生鲜配送自营+平台的管理系统吗