SQL Server Container

Components

Docker Compose

version: '3.8'

services:
  sql-server:
    image: mcr.microsoft.com/mssql/server
    container_name: sql-server-container
    environment:
      SA_PASSWORD: ${SA_PASSWORD}
      ACCEPT_EULA: Y
    ports:
      - "1433:1433"
    # volumes:
    #   - "./Chinook_SqlServer.sql:/docker-entrypoint-initdb.d/1.sql"

ENV

note

Microsoft software is highly interactive, which can be confusing inside containers, here is the Password requirements

  • Greater than 8 Characters
  • Upper Case
  • Lowercase
  • digits
  • Symbols
2025-01-29 04:01:41.14 spid54s     ERROR: Unable to set system administrator password: Password validation failed. The password does not meet SQL Server password policy requirements because it is not complex enough. The password must be at least 8 characters long and contain characters from three of the following four sets: Uppercase letters, Lowercase letters, Base 10 digits, and Symbols..
2025-01-29 04:01:41.15 spid54s     An error occurred during server setup. See previous errors for more information.
SA_PASSWORD=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# username is sa
# database is master
# https://medium.com/@seventechnologiescloud/local-sqlserver-database-via-docker-compose-the-ultimate-guide-f1d9f0ac1354

Get Data

curl \
    https://github.com/lerocha/chinook-database/releases/download/v1.4.5/Chinook_SqlServer.sql \
    > Chinook_SqlServer.sql

Usage

# Start the container
docker compose down
docker compose up -d
docker compose logs -f

# Import the Data
sqlcmd \
    -H localhost \
    -P '238923klsdklsdklDSDSDS@!!@' \
    -U 'sa' \
    -C  \
    -i Chinook_SqlServer.sql