我希望更频繁地使用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/

10-16 18:34
查看更多