我有一个Dockerfile试图将Web应用程序打包并部署到容器中.在Docker镜像构建期间,应用程序的代码从git存储库中获取.这是Dockerfile快照:
........
RUN git clone --depth=1 git-repository-url $GIT_HOME/
RUN mvn package -Dmaven.test.skip
........
Run Code Online (Sandbox Code Playgroud)
我希望docker不要缓存步骤,RUN git clone --depth=1 git-repository-url $GIT_HOME/以便可以在Docker镜像构建上反映存储库上正在进行的更新.是否有可能实现这一目标?
我有一个 bash 脚本,用于在while 循环sqlcmd体中从数据库获取数据:
#!/bin/bash
tmpfile=$(mktemp)
echo -e "1\n2" > tmpfile
echo "---------------content from the tmp file--------------"
cat tmpfile
echo "------------------------------------------------------"
while read -r line || [[ -n $line ]]
do
echo "${line}"
echo " ------------sqlcmd operation start------------"
sqlcmd -Q "set nocount on;select 'dummy'"
echo -e " ------------sqlcmd operation done------------\n\n"
done < tmpfile
echo "-----------------------script done---------------------"
Run Code Online (Sandbox Code Playgroud)
预计会根据 file.txt 中的内容行进行交互,在本例中是两次,但实际上它将无限地交互第一行:

我得到了关于如何从这里解决无限循环的答案,当使用 sqlcmd 时循环变量被固定为常量
此处Unexpected behavior of file描 述符和/或 I/O 流在 ksh 中使用 -i 选项(从文件读取 sql)运行 sqlcmd …