0

我的应用程序有一个数据库,我想在运行时 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)启动后有什么方法可以运行我的脚本吗?

4

1 回答 1

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命令。

于 2021-02-15T10:39:18.397 回答