Skip to content
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

Create convenient way to set up "standard" containerised dev environment for local development #210

Open
der-gabe opened this issue Jul 12, 2024 · 1 comment

Comments

@der-gabe
Copy link
Member

der-gabe commented Jul 12, 2024

User Story

As a developer I want a quick way to set up and use a local development environment to be able to develop with ease and confidence and improve the onboarding experience.

There should be a very simple "standard" way to set up a development environment that should always work and and shouldn't be allowed to break. If any proposed changes would break it, it must be fixed in the same branch, before it is merged.

Acceptance Criteria

  • There should exist a convenient way (e.g. script) to set up a local containerised dev environment for AIMAAS, ideally with a single command.
  • It's fine if other dependencies, such as Postgres, Memcached, RabbitMQ etc. are not containerised, but live on the host.
    • It would be nice, though, if we had the freedom to put them into containers, if we like. But this is less important.
  • We should use the same base container images for this as for our CI/CD pipelines.
  • The project code should be shared between the host and the container, so local work on the host is possible and changes are reflected in the container.
  • Ideally, it should be possible to also do this with the sources of dependent projects, so features or fixes that require code changes across projects can be worked one as one.
  • Any web service started in the container should be reachable from the host, so the local browser (and CLI tools like curl) can be used for debugging and testing.
@tgeek77
Copy link

tgeek77 commented Jul 15, 2024

I would suggest using LXD. You can do the following in a few steps that can all be put in 1 bash script:

  1. Spin up the container with lxd launch
  2. Copy over a configuration file (ansible, salt) with lxd copy
  3. Install the config system with zypper and run the config file to set up everything else.
    in 1-2 minutes (depending on system speed), you should have a completely ready dev environment.

Another potential option is with distrobox.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants