Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Local Docker Setup #137

@shyim

Description

@shyim

General plan is to use shopware/docker and add a -node-22 or -node-24 variant where nodejs is also added. shopware/shopware#12364

Why Docker:

  • This issue/effort aims to enable users to have exactly the same image for production and local.
  • Will help PaaS local setup.
  • Installation of nix + devenv (+ ZSH adjustments) is uncommon, prone to errors. Most Shopware installations, especially for production and mainstream enterprise/dev users, use Docker.
  • Ideally will help us tell a clearer and more convincing story about the difference between plugins and apps and better show the difference.

Why Docker and not Devenv:
Some advanced Shopware teams and plugin developers have started using Nix + Devenv for local dev b/c it provides reproducible environments and works the same on Linux, macOS, and WSL2. However:

  • It presents onboarding overhead
  • Nix and Devenv require additional system dependencies/running daemons; mistakes cause env setup failures or packages not being found.
  • ZSH adjustments: Env variables, shell initialization, or profile changes can clash with local config, causing errors in dev envs.
  • Cross-platform issues: Nix was developed for Linux; running it on macOS (or with ZSH instead of Bash) often means patching the env and fixing edge cases.
  • Lack of clear, Shopware-focused docs: Most SW installation guides explain the vanilla server install, making troubleshooting hard
  • Potential for conflicting build tools: Shopware’s own watcher/build commands (for JS and PHP plugins) can trip over Nix-managed paths or env isolation, causing unexpected behavior during development (e.g., scripts not finding the right node version).

Already done:

  • Added Nodejs to our official docker image
  • Tried out docker compose watch to ensure that it works for us
  • Tried out docker performance issues on a low spec mac

WIP:

Proposed business outcome: provide a Docker setup that "just works" and simplifies both internal and external setup, eliminating "it works on my machine" micro-specialization. Make it much easier to test locally.

Acceptance criteria (WIP):

  • Shopware runs on Docker
  • The environment setup is extendable
  • Networking solved for external devs as well as internal
  • Ensure docs clearly prioritize Docker as our chosen install/setup option and take a user through the setup operation without friction/blockers; testrun with at least two devs to validate
    - For the apps part: need docs on setting up your local env, step-by-step. Clear app dev guide describing how to use base docker image, connect to your app docker image, explain about networking and what needs to be configured in your local environment and what differences there are between local vs. prod. Then it gets complicated: this depends on how you run it…you then have multiple directions people could go (don’t want to be very specific about this part).
  • communicate Docker option as our priority option to the community via usual channels, communicate to internal support to clarify boundaries
  • ensure we build a foundation for deployment helper to be included here as a follow-up step

Out of Scope

  • providing app hosting (backends)

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions