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:latestDocker 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 -dCustom 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
| Variable | Description |
|---|---|
ASPNETCORE_ENVIRONMENT | Production/Development |
ASPNETCORE_URLS | Kestrel listen URLs |
Persistent Data
Mount volumes for:
/app/App_Data- Settings, data files/app/Plugins- Plugin files/app/wwwroot/images- Uploaded images