{"id":21556640,"url":"https://github.com/fredlackey/docker-multi-platform-example","last_synced_at":"2026-01-04T05:06:01.000Z","repository":{"id":96494857,"uuid":"109977812","full_name":"FredLackey/docker-multi-platform-example","owner":"FredLackey","description":"Example for using Docker \u0026 Docker Compose in Multi-Platform Development Environments","archived":false,"fork":false,"pushed_at":"2017-11-08T13:33:34.000Z","size":2,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-24T10:30:47.630Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FredLackey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-08T13:13:57.000Z","updated_at":"2017-11-08T13:13:57.000Z","dependencies_parsed_at":"2023-03-04T13:45:40.259Z","dependency_job_id":null,"html_url":"https://github.com/FredLackey/docker-multi-platform-example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FredLackey%2Fdocker-multi-platform-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FredLackey%2Fdocker-multi-platform-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FredLackey%2Fdocker-multi-platform-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FredLackey%2Fdocker-multi-platform-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FredLackey","download_url":"https://codeload.github.com/FredLackey/docker-multi-platform-example/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244147447,"owners_count":20405964,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-24T08:09:23.919Z","updated_at":"2026-01-04T05:06:00.944Z","avatar_url":"https://github.com/FredLackey.png","language":null,"readme":"# docker-multi-platform-example\nExample for using Docker \u0026amp; Docker Compose in Multi-Platform Development Environments\n\n## Goal  \nThe goal of this repository is to craft a defacto standard for using Docker and Docker Compose in a multi-platform environment.  Do we use BASH trickery, PowerShell scripts, Batch files, Makefile, custom `docker-compose.yml` files per environments?  The goal is for any developer, regardless of their platform, to easily open our repo and crank up a mutli-project solution without jumping through hoops.\n\n## Why is this important?  \nWhile Docker **runs** on all three of the major platforms (Windows, Mac, and Linux), it is a nightmare to configure in Windows.  And, sadly, many large dev shops use all three platforms during the development cycle.  Common features, such as **mapping local paths to volumes** is buggy, at best.  While windows *does* have the ability to run the Windows Subsystem for Linux, and a psuedo-distrobution of Ubuntu, Fedora, or openSUSE, none of these solve the challenges.  Instead, once must use PowerShell in Windows... which is horrible.\n\n## Why is Powershell so Bad?  \nIn short, Powershell is not a great solution because it does not work 100% of the time.  Sure, you are able to set environment variables manually, within Windows, to make force it to translate paths, but that feature randomly breaks in different versions of Docker Compose *and* many people complain it has never worked at al.  This means you must alter your `docker-compose.yml` to hard code Windows paths which either means a second copy of your file *or* simply breaking it for the rest of your team.\n\n## What about project structure?  \nMany of the examples online show a simple project with one NodeJS / ExpressJS service.  However, in the real world, an enterprise solution will have multiple individual projects that must be developed together.  The paths of front-end projects will probably be parallel to back-end projects, thereby creating a rather complex structure for the Docker Context.  This equates to lots of relative pathing in your `docker-compose.yml` file.  And, in turn, th is is where you begin seeing challenges with the advertised Docker Compose techniques.\n\n## Is Docker Compose the problem?  \nWithin the Docker world, Docker Compose is assumed to be the defacto standard for bringing up a multi-project solution.  Is there something better?  Bash?  Do we crank up each project individuallly using some type of nested `make` script?  We don't neccessarily *need* Docker Compose if there is something equally useful that will take into account the nuances of each platform without passing the burden onto the developer.\n\n----\n\n# Living Repo  \nThis goal of this repo is to create a living area for people to contribute ideas to.  While I may have started it, I invite everyone to join and contribute their ideas and opinions.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffredlackey%2Fdocker-multi-platform-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffredlackey%2Fdocker-multi-platform-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffredlackey%2Fdocker-multi-platform-example/lists"}