92 lines
2.3 KiB
YAML
92 lines
2.3 KiB
YAML
version: '3.8'
|
||
|
||
services:
|
||
sqlserver:
|
||
image: mcr.microsoft.com/mssql/server:2022-latest
|
||
container_name: sqlserver-2022
|
||
hostname: sqlserver-2022
|
||
restart: unless-stopped
|
||
privileged: true
|
||
ports:
|
||
- "${SQLSERVER_PORT}:1433"
|
||
environment:
|
||
- ACCEPT_EULA=Y
|
||
- SA_PASSWORD=${SQLSERVER_SA_PASSWORD}
|
||
- MSSQL_PID=${SQLSERVER_EDITION}
|
||
- TZ=Asia/Shanghai
|
||
volumes:
|
||
- sqlserver-data:/var/opt/mssql
|
||
- sqlserver-logs:/var/opt/mssql/log
|
||
- ./sqlserver/init:/docker-entrypoint-initdb.d
|
||
- ./sqlserver/backup:/var/opt/mssql/backup
|
||
deploy:
|
||
resources:
|
||
limits:
|
||
cpus: "4.0"
|
||
memory: 8g
|
||
reservations:
|
||
cpus: "2.0"
|
||
memory: 4g
|
||
networks:
|
||
- sqlserver-net
|
||
healthcheck:
|
||
test: ["CMD-SHELL", "/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P ${SQLSERVER_SA_PASSWORD} -Q 'SELECT 1' || exit 1"]
|
||
interval: 30s
|
||
timeout: 10s
|
||
retries: 5
|
||
start_period: 60s
|
||
stdin_open: true
|
||
tty: true
|
||
|
||
# SQL Server Management Studio (可选,基于Web的管理界面)
|
||
sqlserver-web:
|
||
image: mcr.microsoft.com/mssql/server:2022-latest
|
||
container_name: sqlserver-web
|
||
hostname: sqlserver-web
|
||
restart: unless-stopped
|
||
ports:
|
||
- "${SQLSERVER_WEB_PORT}:8080"
|
||
environment:
|
||
- ACCEPT_EULA=Y
|
||
- SA_PASSWORD=${SQLSERVER_SA_PASSWORD}
|
||
- MSSQL_PID=${SQLSERVER_EDITION}
|
||
- TZ=Asia/Shanghai
|
||
volumes:
|
||
- ./sqlserver/web-config:/var/opt/mssql/web-config
|
||
depends_on:
|
||
sqlserver:
|
||
condition: service_healthy
|
||
networks:
|
||
- sqlserver-net
|
||
command: >
|
||
/bin/bash -c "
|
||
# 安装SQL Server Web管理工具
|
||
apt-get update && apt-get install -y curl wget &&
|
||
# 这里可以添加Web管理界面的安装脚本
|
||
echo 'SQL Server Web management interface ready' &&
|
||
tail -f /dev/null
|
||
"
|
||
|
||
networks:
|
||
sqlserver-net:
|
||
driver: bridge
|
||
ipam:
|
||
driver: default
|
||
config:
|
||
- subnet: 172.24.0.0/16
|
||
gateway: 172.24.0.1
|
||
|
||
volumes:
|
||
sqlserver-data:
|
||
driver: local
|
||
driver_opts:
|
||
type: none
|
||
o: bind
|
||
device: ./sqlserver/data
|
||
sqlserver-logs:
|
||
driver: local
|
||
driver_opts:
|
||
type: none
|
||
o: bind
|
||
device: ./sqlserver/logs
|