Docker 使用 entrypoint.sh 传递参数 Docker 入口点

Raz*_*een 2 docker devops

我试图将一个参数传递给我的 docker 入口点,但它失败了,这些是我遵循的步骤

Docker Build Command : docker build -t "DBDNS" --build-arg  db=sample
Run Code Online (Sandbox Code Playgroud)

在 Dockerfile 中

ARG db
ENV database ${db}
ENTRYPOINT ["/docker/entrypoint.sh", ${db}]
Run Code Online (Sandbox Code Playgroud)

此 bash 的错误:1: bash: [/var/www/html/.docker/entrypoint.sh,: not found

实际上文件存在并为 entrypoint.sh 传递参数导致问题。任何线索

-----------ENTRYPOINT---------------------
#!/usr/bin/env bash

echo "Entrypoint stuff"
echo "----------------"
echo "NEW APP DB CLONE FROM  $1"
echo "sites/files permission changes"
echo "--------------------------------------"
Run Code Online (Sandbox Code Playgroud)

Tar*_*ani 6

入口点不能有 aa 变量。您可以将其移动到 CMD 或直接访问它docker-entrypoint.sh

ARG db
ENV database ${db}
ENTRYPOINT ["/docker/entrypoint.sh"]
CMD ["${db}"]


-----------ENTRYPOINT---------------------
#!/usr/bin/env bash

echo "Entrypoint stuff"
echo "----------------"
echo "NEW APP DB CLONE FROM  $1 or same as $database"
echo "sites/files permission changes"
echo "--------------------------------------"
Run Code Online (Sandbox Code Playgroud)

即使你不使用CMD,$database也会得到你需要的价值