Skip to content

dockersrc/windows

Repository files navigation

👋 Welcome to windows 🚀

Windows Server Core Container for running Windows applications in Docker.

⚠️ IMPORTANT: This container requires a Windows host to build and run. It will NOT work on Linux or macOS.

Requirements

  • Windows Server 2022 or Windows 10/11 Pro with containers feature enabled
  • Docker Desktop for Windows (with Windows containers enabled)
  • At least 10GB free disk space for the image

Install and run container

# Create directories
$dockerHome = "C:\docker\casjaysdevdocker\windows"
New-Item -ItemType Directory -Force -Path "$dockerHome\data", "$dockerHome\config"

# Run container
docker run -d `
  --restart always `
  --name casjaysdevdocker-windows-latest `
  --hostname windows `
  -e TIMEZONE="Eastern Standard Time" `
  -v "$dockerHome\data:C:\data" `
  -v "$dockerHome\config:C:\config" `
  -p 80:80 `
  casjaysdevdocker/windows:latest

via docker-compose

version: "3.8"
services:
  windows:
    image: casjaysdevdocker/windows:latest
    container_name: casjaysdevdocker-windows
    environment:
      - TIMEZONE=Eastern Standard Time
      - HOSTNAME=windows
    volumes:
      - "C:/docker/casjaysdevdocker/windows/data:C:/data"
      - "C:/docker/casjaysdevdocker/windows/config:C:/config"
    ports:
      - "80:80"
    restart: always

Get source files

git clone "https://github.com/casjaysdevdocker/windows" "$env:USERPROFILE\Projects\casjaysdevdocker\windows"

Build container

⚠️ Must be built on Windows with Docker Desktop in Windows containers mode

cd "$env:USERPROFILE\Projects\casjaysdevdocker\windows"
docker build -t casjaysdevdocker/windows:latest .

Package Management

This container uses winget (Windows Package Manager) or chocolatey as fallback. To install packages:

# Via pkmgr wrapper (recommended)
docker exec casjaysdevdocker-windows-latest powershell "C:/Windows/System32/pkmgr.ps1 install git.git"
docker exec casjaysdevdocker-windows-latest powershell "C:/Windows/System32/pkmgr.ps1 install nodejs"

# Direct via winget
docker exec casjaysdevdocker-windows-latest powershell "winget install git.git"

Container Structure

C:/
├── ProgramData/
│   ├── Docker/setup/          - Setup scripts (00-init.ps1 to 07-cleanup.ps1)
│   └── template-files/        - Configuration templates
├── Windows/System32/
│   ├── entrypoint.ps1         - Container entrypoint
│   ├── pkmgr.ps1              - Package manager wrapper
│   └── pkmgr                  - Shell script version
├── Users/Administrator/       - User home directory
├── config/                    - Configuration volume mount
└── data/                      - Data volume mount

Environment Variables

  • TIMEZONE - Windows timezone (default: "Eastern Standard Time")
  • HOSTNAME - Container hostname
  • LANG - Language setting (default: "en-US")
  • SERVICE_PORT - Primary service port
  • ENV_PORTS - Additional exposed ports

Authors

🤖 casjay: Github 🤖
⛵ casjaysdevdocker: Github Docker

About

Repo for windows

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published