从docker run传递参数到dockerfile
下面是我的docker build命令
docker build -t test/magento2:1.0.0 --build-arg BASE_URL=http://www.hostname.net/ --build-arg DATABASE_HOST=localhost --build-arg DATABASE_NAME=magento --build-arg DATABASE_USER=root --build-arg DATABASE_PASSWORD=root --build-arg ADMIN_USERNAME=test --build-arg ADMIN_FIRSTNAME=test --build-arg ADMIN_LASTNAME=Mobi --build-arg ADMIN_EMAIL=support@test.mobi --build-arg ADMIN_PASSWORD=test@123 --build-arg DEFAULT_LANGUAGE=en_US --build-arg DEFAULT_CURRENCY=INR --build-arg DEFAULT_TIMEZONE=Asia/Kolkata --build-arg BACKEND_FRONTNAME=admin .
Dockerfile
ARG BASE_URL ARG DATABASE_HOST ARG DATABASE_NAME ARG DATABASE_USER ARG DATABASE_PASSWORD ARG ADMIN_USERNAME ARG ADMIN_FIRSTNAME ARG ADMIN_LASTNAME ARG ADMIN_EMAIL ARG ADMIN_PASSWORD ARG DEFAULT_LANGUAGE ARG DEFAULT_CURRENCY ARG DEFAULT_TIMEZONE ARG BACKEND_FRONTNAME RUN service mysql start && \ cd /var/www/html && php bin/magento setup:install --base-url=$BASE_URL --db-host=$DATABASE_HOST --db-name=$DATABASE_NAME --db-user=$DATABASE_USER --db-password=$DATABASE_PASSWORD --admin-firstname=$ADMIN_FIRSTNAME --admin-lastname=$ADMIN_LASTNAME --admin-email=$ADMIN_EMAIL --admin-user=$ADMIN_USERNAME --admin-password=$ADMIN_PASSWORD --language=$DEFAULT_LANGUAGE --currency=$DEFAULT_CURRENCY --timezone=$DEFAULT_TIMEZONE --use-rewrites=1 --backend-frontname=$BACKEND_FRONTNAME
它工作正常,但我正在寻找一些东西
docker run <here I need to pass my arguments>
我正在考虑ENV,但这会让人感到困惑。 我不知道如何将docker run命令的envvariables传递给dockerfile。
我相信有一个办法可以做到。
谁可以帮我这个事?
你可以把参数传给
docker run
所以,当你运行一个容器
只是检查
docker run --help
你会得到,除其他事情
-e, --env value Set environment variables (default []) --env-file value Read in a file of environment variables (default [])
ENV
在build造时被照顾
如果你想
“我不知道如何将docker run命令的envvariables传递给dockerfile”
你不能, docker run
从一个创build的图像启动一个容器,一个Dockerfile可以帮助你build立一个新的图像
stream量
Dockerfile – > docker docker build -t myuser/myimage:v12.3 .
我的新形象
启动一个容器docker run myuser/myimage:v12.3 myoptions
从我的镜像myuser / myimage:v12.3