Skip to content

Remove entrypoint and make it possible to do cross platform build #7812

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

stevefan1999-personal
Copy link
Contributor

This PR enables multi-platform Docker image builds using docker buildx to support both AMD64 and ARM64 architectures.

It is really simple:

docker buildx build --push --platform linux/amd64,linux/arm64 -t stevefan1999/nopcommerce:latest .

Replace the image name and tag with official nopcommerce scope. That said, stevefan1999/nopcommerce:latest does exist for an example of a successful multi-arch build for nopCommerce.

The changes allow nopCommerce to run natively on ARM-based infrastructure including Oracle Cloud's Always Free ARM instances, AWS Graviton, Azure ARM VMs, and Apple Silicon development environments. I have manually confirmed it runs on my ARM VPS server, albeit not with additional testing, that I haven't installed it yet, and may have to think about how to store the config.

Little nag: I also want to know how do I do automatic installation without human intervention, because I run in a Kubernetes environment and I want to auto deploy everything, and I need to know what paths I needed to store persistent data.

Changes:

  • Updated build process to use docker buildx with --platform linux/amd64,linux/arm64
  • Maintained compatibility with existing AMD64 deployments
  • No noticable changes required to the existing deployment using the older Dockerfile

@AndreiMaz
Copy link
Member

@stevefan1999-personal
Copy link
Contributor Author

@skoshelev See https://www.nopcommerce.com/en/boards/topic/102404/arm64-docker-image-support

Yes, I'm trying to deploy it on Oracle Cloud with their free MySQL HeatWave database too.

@skoshelev
Copy link
Contributor

Hi @stevefan1999-personal!

Thank you very much for your contribution.

I didn't quite understand the paths for data, but I can assume that you need the following directories:
App_Data
Plugins
Themes
wwwroot
As for the installation automation, unfortunately, we don't have such a function. The easiest way to do this is to create a backup copy with the default settings for you, deploy it, and write the connection string in the appsettings.json file

@skoshelev skoshelev merged commit 23e79cf into nopSolutions:develop Aug 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Docker. Remove entrypoint and make it possible to do cross platform build
3 participants