我正在Docker中创建我的开发环境,由于需要Azure存储服务,我想使用Azurite作为本地Azure存储服务。
当我尝试做
RUN azurite-blob &
它只是运行,此命令不会产生任何效果。我也尝试将此命令回显到文件并作为脚本运行,但结果是一样的。
当我在 docker 容器上运行相同的命令时,它会正常启动并为 azurite 创建各种目录。
所以问题是如何使蓝铜矿在 Dockerfile 的后台工作?
你不能在dockerfile的构建步骤中发出命令在后台工作,因为每个步骤都将在单独的层中运行,并在步骤完成后删除。
您可以使用:
ENTRYPOINT
或CMD
来实现这一点(即在运行时运行它而不是构建(
更新
根据您的评论:
创建script.sh
:
#!/bin/bash
/usr/bin/azurite &
exec "$@"
你需要先在 Dockerfile 中将其设置为可执行文件:
COPY script.sh script.sh
RUN chmod +x script.sh
然后,您可以使用bash
作为交互模式的命令