cloudstack icon indicating copy to clipboard operation
cloudstack copied to clipboard

Docker Container for MacOS Developers environment

Open bri-harris opened this issue 5 months ago • 3 comments

The required feature described as a wish

As a User/Admin/Operator or wishful developer/contributor using a MacOS system for the CloudStack open source project I would like a Docker Container which packages all the necessary dependencies. There are a few known issues:

  • Python 2.7.16 reached end of life so MacOS no longer includes it by default.
  • When trying to install Python 2.7.16 or 2.7.18, MacOS requires older versions of OppenSSL and Zlib both of which are also blocked by security issues
  • CloudStack requires OpenSSL Libraries,but MacOS comes with a different implementation, LibreSSL, where TLS version conflicts restrict use of the correct OpenSSL version required for the legacy Python and Java Dependencies.
  • CloudStack is originally designed for linux, so some dependencies, like Marvin, are missing or outdated causing installation failures

Acceptance Criteria: contribute a Dockerfile which creates a docker image resulting in a linux based container packaged with all the required dependancies. The docker container should run

  • [ ] ubuntu:20.04
  • [ ] Python 2.7.16 or 2.7.18 (for older cloudstack tools)
  • [ ] Python3 / Python3-pip for build tools and package managers
  • [ ] Java 17, openjdk-17-jdk
  • [ ] Mavan
  • [ ] Git
  • [ ] MySQL Server and Client for Cloudstacks database
  • [ ] OpenSSL for TSL
  • [ ] CloudStack source code from github
  • [ ] Marvin for API Testing
  • [ ] (Optional) Node.js for UI

bri-harris avatar Jun 05 '25 16:06 bri-harris

Thanks for opening your first issue here! Be sure to follow the issue template!

boring-cyborg[bot] avatar Jun 05 '25 16:06 boring-cyborg[bot]

I have opened this issue as a MacOS user who attempted to set up a developers environment for https://github.com/apache/cloudstack/issues/8837

bri-harris avatar Jun 05 '25 16:06 bri-harris

In the tools/marvin/setup.py script, there is a package referenced that does not exist in the repository: marvin.cloudstackAPI does not exist. setup.py references it here

packages=["marvin", "marvin.cloudstackAPI",
                "marvin.lib", "marvin.config", "marvin.sandbox",
                "marvin.sandbox.advanced", "marvin.sandbox.advancedsg",
                "marvin.sandbox.basic"],

bri-harris avatar Jun 05 '25 18:06 bri-harris

@bri-harris we plan to release 21 somewhere this summer. Will you be ready with this soon?

DaanHoogland avatar Jul 07 '25 07:07 DaanHoogland