Docker compose和microsoft / mssql-server-linux:如何运行init sql脚本?

时间:2018-10-10 12:53:52

标签: sql-server docker

我想在docker上本地运行SQL Server和RabbitMQ。但是,我无法使用sql脚本初始化SQL Server数据库。我的数据库Dockerfile

methods: {
  text: item => item.name + ' — ' + item.description
}

这是我的docker-compose.yml

FROM microsoft/mssql-server-linux:latest

COPY ./mock-database/db-dump.sql /etc/mock-database/

在我使用myscript运行应用程序之后

version: '3.1'
services:
  rabbitMq:
    image: rabbitmq
        hostname: localhost
        ports:
        - "15672:15672"
        - "5672:5672"
        - "5671:5671"

      db:
        image: listings_db
        ports:
        - "1433:1433"
        environment:
          SA_PASSWORD: "microsoftSucks1!"
          ACCEPT_EULA: "Y"
        command: /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P microsoftSucks1! -i /etc/mock-database/db-dump.sql

我有这个例外

    docker build -t listings_db -f mock-database/databaseDockerfile . 
    docker build -t rabbitmq -f rabbitmq/rabbitmqDockerfile . 
    docker-compose -f stack.yml up

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您需要等待几秒钟,然后SQL Server才能启动并能够接受连接。 即:

#wait for the SQL Server to come up
sleep 10s

#run the setup script
/opt/mssql-tools/bin/sqlcmd  .....

#import the data 
/opt/mssql-tools/bin/bcp .......

每个https://github.com/twright-msft/mssql-node-docker-demo-app/blob/master/import-data.sh

相关问题