我现在正试图模拟生产环境
终极目标:
1. Apache
2. php5
3. Microsoft SQL Server
4. Create database
5. Make database schema
6. Connect from website
其中3个我可以通过DockerFile
和docker-compose.yml
轻松实现
问题是第4次
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
创建数据库?
答案 0 :(得分:1)
为SQL Server创建Dockerfile并使用COPY命令复制sql脚本文件(使用命令创建数据库和模式)并使用RUN命令在创建映像时运行sql脚本并从Image创建容器。它将解决问题。
请参阅以下链接: https://github.com/twright-msft/mssql-node-docker-demo-app
答案 1 :(得分:0)
为什么不创建SQL容器,然后使用SSMS并运行创建数据库所需的任何脚本?然后,停止容器,并将其提交到图像,你可以使用支持传送n个实例的图像吗?