【问题标题】:How to execute command in `ms-sql-server` container?如何在“ms-sql-server”容器中执行命令?
【发布时间】:2018-01-03 07:01:42
【问题描述】:

我现在正在尝试模拟生产环境。
终极目标:
1.Apache
2.php5
3.Microsoft SQL Server
4.Create database
5.Make database schema
6.Connect from website

其中 3 个我可以通过 DockerFiledocker-compose.yml 简单地实现 问题是第四个

DockerFile

FROM debian:7

RUN apt-get update
RUN apt-get install -y freetds-common freetds-bin unixodbc php5-sybase apache2


RUN mkdir /source
WORKDIR /source

COPY application ./applications
COPY assets ./assets
COPY pushnotification ./pushnotification
COPY system ./system
COPY uploads ./uploads
COPY web.config .

docker-compose.yml

version: '3'

services:

  mssql:
    image: microsoft/mssql-server-linux:latest
    environment:
      ACCEPT_EULA: Y
      SA_PASSWORD: <password>
      MSSQL_PID: Developer
    restart: "always"
    ports:
        - "1433:1433"

  backend:
    container_name: gen365-cms
    build:
      context: .
      dockerfile: DockerFile
    links:
      - mssql
    ports:
      - "8081:8080"

我正在尝试根据manual创建数据库

$ docker exec -it a3063bbff978 /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P phohHa0gyahh2Vah
1> select Name from sys.databases;
2> \q
3> ;
4> exit

问题: 如何为我的container 创建数据库?

【问题讨论】:

标签: php sql-server docker docker-compose


【解决方案1】:

为 SQL Server 创建一个 Dockerfile 并使用 COPY 命令复制 sql 脚本文件(带有创建数据库和模式的命令)并使用 RUN 命令在创建映像时运行 sql 脚本并从映像创建容器。它会解决问题。

请参考以下链接: https://github.com/twright-msft/mssql-node-docker-demo-app

【讨论】:

    【解决方案2】:

    为什么不创建 SQL 容器,然后使用 SSMS 并运行创建数据库所需的任何脚本?然后,停止容器,并将其提交到镜像中,您会很好地使用支持交付 n 个实例的镜像吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-20
      • 2023-03-20
      • 1970-01-01
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      • 2021-06-23
      • 1970-01-01
      相关资源
      最近更新 更多