How to build Squidex using Docker or manually.

1. Build for docker

We provide docker images on docker hub:
  • squidex/squidex:latest is the latest stable version.
  • squidex/squidex:vX.XX is a specific stable version.
  • squidex/squidex:dev is the latest dev version (master branch).
  • squidex/squidex:dex-XXXX is a specific dev version (master branch).
To build a custom image use the multistage Dockerfile. Just run:
docker build . -t my/squidex

2. Build for manual deployment

When you want to deploy to IIS or NGINX you might want to build it manually. Note that we also provide the prebuild binaries on Github, link below.
You can then find the files under $SQUIDEX/publish.
$SQUIDEXis a placeholder for the path to your local copy of the Squidex source code.

2.1. Build with docker

Run the following commands in PowerShell or bash to build Squidex with docker:
# Build the image
docker build . -t squidex-build-image -f
# Open the image
docker create --name squidex-build-container squidex-build-image
# Copy the output to the host file system
docker cp squidex-build-container:/out ./publish
# Cleanup
docker rm squidex-build-container
In Windows, just use the script.
We recommend giving the Docker machine at least 4GB of memory.

2.2. Build it manually

If you don't want to use docker, you can also build it manually. The project structure has changed slightly its migration from .NET Core 2.X to .NET Core 3.0.

2.2.1. Build the .NET 3.0 version

The new structure differentiates between the frontend and the backend.
Project structure
This has the advantage that the code is separated and we can use multiple contains to build them independently, making better use of caching in docker. After both frontend and backend, have been built, you need to copy the build artifacts to a common folder. We just assume that we use $SQUIDEX/publish for that.
To build the backend, run the following commands.
cd backend
cd src/Squidex
dotnet publish --configuration Release --output "../../../publish"
To build the frontend, run the following commands.
cd frontend
npm i # Install npm packages
npm run build
copy build "../publish/wwwroot/build"

2.2.2. Build the .NET 2.X without docker

npm i
npm run build
dotnet restore
dotnet publish --configuration Release --output "../../publish"
Please note that, on Windows you have to run PowerShell or CMD.exe in elevated mode (run as Administrator) to install all required build tools for node-sass.
npm install --global --production windows-build-tools
We recommend to build Squidex with docker, because it ensures that you have a clean environment. Because of the docker layers the build is not much slower and can be even faster in some situations.