Skip to content

Docker Deployment

Deploy nopCommerce using Docker containers.

Quick Start

bash
# Pull and run with SQL Server
docker run -d \
  --name nopcommerce \
  -p 80:80 \
  -e ASPNETCORE_ENVIRONMENT=Production \
  nopsolutions/nopcommerce:latest

Docker Compose

Create docker-compose.yml:

yaml
version: '3.8'

services:
  nopcommerce:
    image: nopsolutions/nopcommerce:latest
    ports:
      - "80:80"
    environment:
      - ASPNETCORE_ENVIRONMENT=Production
    volumes:
      - nop-data:/app/App_Data
      - nop-plugins:/app/Plugins
    depends_on:
      - db
    restart: unless-stopped

  db:
    image: mcr.microsoft.com/mssql/server:2022-latest
    environment:
      - ACCEPT_EULA=Y
      - SA_PASSWORD=YourStrong@Password
      - MSSQL_PID=Express
    volumes:
      - sql-data:/var/opt/mssql
    restart: unless-stopped

volumes:
  nop-data:
  nop-plugins:
  sql-data:
bash
docker-compose up -d

Custom Dockerfile

dockerfile
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY . .
RUN dotnet publish "src/Presentation/Nop.Web/Nop.Web.csproj" \
    -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "Nop.Web.dll"]

Environment Variables

VariableDescription
ASPNETCORE_ENVIRONMENTProduction/Development
ASPNETCORE_URLSKestrel listen URLs

Persistent Data

Mount volumes for:

  • /app/App_Data - Settings, data files
  • /app/Plugins - Plugin files
  • /app/wwwroot/images - Uploaded images

Released under the nopCommerce Public License.