bash - 您如何根据目录名称命名Docker镜像?

标签 bash docker dockerfile

我希望更频繁地使用docker,最终得到的模板目录结构有点像:

My-New-Project/
    |- Dockerfile
    |- build.sh
    |- start.sh
    |- src/...
其中build.shstart.sh只是通常的docker build -t my-new-project .docker run -p 8888:8888 -v $(pwd):/workdir my-new-project但是,我需要为每个新项目修改build.shstart.sh中的图像名称-如何使用bash基于目录基本名称设置图像名称。
另外,如果有反对执行我正在做的事情的最佳实践,请告诉我。

最佳答案

结合How to set image name in Dockerfile?Get current directory name (without full path) in a Bash script的答案,您需要在build.sh和start.sh中做的只是:docker build -t "${PWD##*/}"docker run -p 8888:888 -v $(pwd):/workdir "${PWD##*/}"或者,假设您还需要名称(例如How to convert a string to lower case in Bash?)为小写:

dirname=${PWD##*/}

docker build -t "${dirname,,}"
${PWD##*/}使用shell参数扩展从路径中删除其他目录,而,,是另一个将大写转换为小写的目录。

关于bash - 您如何根据目录名称命名Docker镜像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64439273/

相关文章:

python - 访问具有生成名称的文件

linux - 如何在 OSX 或 LINUX 上执行没有完整目录的 execv()?

docker - 卷 - 设备映射如何在 Docker 上工作

shell - 如何从 docker 容器内的文件在 dockerfile 中设置系统范围的环境变量?

regex - sed - 不匹配行首

wordpress - 在 nano 中使用 bash 脚本打开和更改 wp-config 文件

docker - 您可以控制Dockerfile中的Docker运行参数吗

docker - Windows 7 jupyter 笔记本 - ImportError : No module named 'tensorflow'

python - 无法为 pyjq 构建轮子 |没有这样的文件或目录 : 'autoreconf' : 'autoreconf'

docker - 如何从另一个容器连接到独立的 selenium-firefox 容器