我的应用程序有一个数据库,我想在运行时 docker 中创建它
我有一个文件 CreateDB.sh
,它创建了我想要的所有表和存储过程。
我试过了:
FROM mcr.microsoft.com/mssql/server
ENV ACCEPT_EULA=Y \
SA_PASSWORD=qwe123QWE
USER root
RUN mkdir /home/db
COPY ./db /home/db
RUN chmod +x /home/db/DbScriptLinux.sh
WORKDIR /home/db/
CMD ["/bin/bash", "/home/db/DbScriptLinux.sh"]
但它返回一个错误:
<块引用>登录超时
有没有办法在所有服务(sql-server)启动后运行我的脚本?
答案 0 :(得分:0)
您可以使用 if 语句,例如 RUN if [[ -z "$arg" ]] ; then echo Argument not provided ; else echo Argument is $arg ; fi
另一种方法是使用 command1 && command2
,因此如果命令 1 成功,则命令 2 将在之后运行。
你的最后一行CMD ["/bin/bash", "/home/db/DbScriptLinux.sh"]
,如果这是每次启动容器时启动数据库,作为你默认运行的命令,那么应该没问题,否则最好使用RUN
命令。