{"id":3348,"date":"2022-12-01T11:08:38","date_gmt":"2022-12-01T11:08:38","guid":{"rendered":"http:\/\/the-codest.localhost\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/"},"modified":"2026-03-09T13:07:45","modified_gmt":"2026-03-09T13:07:45","slug":"omgaan-met-meerdere-omgevingen-voor-meerdere-projecten-op-een-machine","status":"publish","type":"post","link":"https:\/\/thecodest.co\/nl\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/","title":{"rendered":"Meerdere omgevingen voor meerdere projecten op \u00e9\u00e9n machine?"},"content":{"rendered":"<p>Laten we eens kijken naar een typische werkomgeving in een <a href=\"https:\/\/thecodest.co\/nl\/dictionary\/how-to-choose-software-house\/\">softwarebedrijf<\/a>. Je hebt een paar klanten die verschillende omgevingen hebben. Sommigen geven de voorkeur aan MySQL, anderen aan Postgres. E\u00e9n versie van uw applicatie heeft nodig <a href=\"https:\/\/thecodest.co\/nl\/blog\/top-programming-languages-to-build-e-commerce\/\">Java<\/a> 11 en een andere Java 17. Frontend heeft npm 12 of 16 nodig omdat je verschillende versies van <a href=\"https:\/\/thecodest.co\/nl\/dictionary\/what-is-node-js-used-for-in-angular\/\">hoekig<\/a>. Uiteindelijk heb je die driedimensionale matrix die combinaties bevat van al je DB's, backend- en frontend-versies. Klinkt slecht, maar op een dag zegt je baas...<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/comic.png\" alt=\"strips&lt;em&gt;met&lt;\/em&gt;baas\" title=\"als je baas zegt...\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">De wortels van een multiversum-omgeving<\/h2>\n\n\n\n<p>De hierboven beschreven situatie is niet ongewoon. Migratie tussen taal- of frameworkversies, updates van databases of gewoon andere eisen van klanten kunnen alle configuraties op hun kop zetten. We moeten een oplossing hebben die helpt <a href=\"https:\/\/thecodest.co\/nl\/blog\/why-us-companies-are-opting-for-polish-developers\/\">us<\/a> die veranderingen te beheren, een die overeenkomt met een paar aannames en\/of vereisten en\/of doelen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b> gemakkelijk te gebruiken<\/b> - E\u00e9n commando om een configuratie of versie te wijzigen,<\/li>\n\n\n\n<li><b>rijke bibliotheek<\/b> - moet meerdere technologie\u00ebn en \"dingen\" (bibliotheken, frameworks, apps) ondersteunen,<\/li>\n\n\n\n<li><b> uitbreidbaar<\/b> - je moet de mogelijkheid bieden om je plugins toe te voegen.<\/li>\n<\/ul>\n\n\n\n<p>In dit artikel zal ik me richten op drie gebieden. Ten eerste hulpmiddelen voor Java en JVM. De tweede is tools voor algemeen gebruik. De derde is hoe je <a href=\"https:\/\/thecodest.co\/nl\/dictionary\/docker-developer\/\">dokwerker<\/a> om onze doelen te bereiken.<\/p>\n\n\n\n<p>\u200b<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ik ben Java en ik werk op JVM<\/h2>\n\n\n\n<p>Wanneer je een <strong><a href=\"https:\/\/thecodest.co\/nl\/dictionary\/java-developer\/\">Java-ontwikkelaar<\/a><\/strong> of, meer in het algemeen, je werkt met <strong>JVM-technologie\u00ebn<\/strong>dan kun je het volgende gebruiken <a href=\"https:\/\/sdkman.io\/\">SDKMAN!<\/a>. Dit is een zeer mooie en eenvoudig te gebruiken tool die veel bibliotheken, frameworks en talen ondersteunt.<\/p>\n\n\n\n<p>Het installatieproces van <strong>SDKMAN!<\/strong> Is vrij eenvoudig. Je moet rennen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\"><code>curl -s \"https:\/\/get.sdkman.io\" | bash<\/code><\/code><\/pre>\n\n\n\n<p>en dan<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\"><code><code>bron \"$HOME\/.sdkman\/bin\/sdkman-init.sh\"<\/code><\/code><\/code><\/pre>\n\n\n\n<p>Nu kunt u uw <strong>Java<\/strong>, <strong>Scala<\/strong> en <strong>Maven<\/strong> versies.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Versies beheren - voorbeeld<\/h3>\n\n\n\n<p>In dit voorbeeld zullen we de versie van een paar tools installeren en bijwerken. Dit is slechts een kleine subset van beschikbare tools.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Installatie<\/h3>\n\n\n\n<p>Laten we aannemen dat je nieuwe <a href=\"https:\/\/thecodest.co\/nl\/dictionary\/why-do-projects-fail\/\">project<\/a> gebruikt <strong>Java 17<\/strong>. Je hebt geen <strong>Java<\/strong> versie ge\u00efnstalleerd. Je wilt het installeren en daarnaast een Maven Daemon tool toevoegen om de builds sneller te maken. Je moet dus ook Maven installeren. Om dat te doen, moet je drie eenvoudige commando's uitvoeren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ sdk installeer java 17-open\n\n$ sdk installeer maven 3.8.4\n\n$ sdk installeer mvnd 0.7.1<\/code><\/pre>\n\n\n\n<p>Aan het einde van de installatie van elk hulpprogramma wordt u gevraagd of u het als standaard wilt instellen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\"><code>Wil je dat Java 17-open als standaard wordt ingesteld? (J\/N):<\/code><\/code><\/pre>\n\n\n\n<p>Dit is belangrijk wanneer je een nieuwe versie van een bibliotheek of een taal installeert, omdat SDKMAN! die standaardversie zal instellen als globaal voor alle terminals van de huidige gebruiker.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Versies controleren en bijwerken<\/h3>\n\n\n\n<p>Van tijd tot tijd moet SDKMAN! indexen bijwerken. Tijdens dit proces kun je een melding krijgen dat er nieuwe versies zijn van tools die je gebruikt. We kunnen controleren welke versies beschikbaar zijn door te typen <code>sdk ls<\/code>. Voor <code>sdk ls maven<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">Beschikbare Maven versies\n\n================================================================================\n\n    3.8.6 3.3.3\n\n    3.8.5 3.3.1\n\n3.8.4 3.2.5\n\n    3.8.3 3.2.3\n\n    3.8.2 3.2.2\n\n    3.8.1 3.2.1\n\n    3.6.3 3.1.1\n\n    3.6.2 3.1.0\n\n    3.6.1 3.0.5\n\n    3.6.0 3.0.4\n\n    3.5.4\n\n    3.5.3\n\n    3.5.2\n\n    3.5.0\n\n    3.3.9\n\n\n\n================================================================================\n\nlokale versie\n\nmomenteel in gebruik\n\n================================================================================<\/code><\/pre>\n\n\n\n<p>Zoals we hierboven zien, heeft Maven een nieuwere versie dan degene die wij gebruiken. Hetzelfde geldt voor <code>mvnd<\/code> (0.8.2) en Java (19-open). Laten we alles bijwerken. Om dat te doen, hoeven we alleen maar het installatiecommando aan te roepen, maar deze keer gebruiken we geen versiespecificatie:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ sdk installeren maven\n\n$ sdk installeren mvnd\n\n$ sdk installeer java<\/code><\/pre>\n\n\n\n<p>Maar er gebeurde iets verkeerds. <code>Maven<\/code> en <code>mvnd<\/code> hebben correcte versies, maar <strong>Java<\/strong> heeft versie <code>17.0.5-tem<\/code>. Dat komt omdat \"de nieuwste\" versie van de tool wordt beheerd door de leverancier en niet door de lokale SDKMAN! Wie is deze leverancier? Een leverancier in SDKMAN! is iemand die een versie kan publiceren. Laten we echter zeggen dat we uiteindelijk het volgende installeren <code>19-open<\/code>en we hebben het standaard gemaakt, maar om de een of andere reden moeten we gebruik maken van <code>17-open<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Lokale versies en versiebeheer per terminal<\/h3>\n\n\n\n<p>\u200b<br>We kunnen een <code>standaard<\/code> versie van een tool die globaal is voor alle projecten en terminals. Maar als we een specifieke versie nodig hebben, hebben we twee manieren om dat te doen. De eerste is om de <code>sdk gebruik<\/code> commando elke keer als we een specifieke versie van een gereedschap in de huidige terminal willen gebruiken. De tweede is om een versielijst te maken in een <code>.sdkmanrc<\/code> bestand dat bij het project is opgeslagen.<\/p>\n\n\n\n<p>Terwijl de eerste optie voor eenmalig gebruik is, is de tweede ontworpen voor het werken met teams en het delen van configuraties tussen <a href=\"https:\/\/thecodest.co\/nl\/dictionary\/how-to-lead-software-development-team\/\">team<\/a> leden.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Voor- en nadelen van SDKMAN!<\/h3>\n\n\n\n<p>SDKMAN! is heel gemakkelijk te gebruiken en heeft een rijke bibliotheek met ondersteunde tools, frameworks en talen. Het werkt op Linux, MacOS en Windows. Aan de andere kant is deze tool JVM-geori\u00ebnteerd en moet de auteur een leverancier accepteren. Bovendien is de monteur van <code>.sdkmanrc<\/code> is erg slecht en kan het proces van het wijzigen van mappen aanzienlijk vertragen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ik wil graag veel andere talen gebruiken<\/h2>\n\n\n\n<p>Als je veel talen en tools moet gebruiken, kijk dan eens naar <a href=\"https:\/\/asdf-vm.com\/\">asdf<\/a>. Deze tool is gericht op \"high-level\" tools. Terwijl je in SDKMAN! veel Java-specifieke tools kunt vinden, zoals Bpipe of Znai, biedt asdf veel meer tools, maar niet zo specifiek. Natuurlijk overlappen sommige van deze tools elkaar, bijvoorbeeld Java, Tomcat of mvnd zijn beschikbaar in beide.<\/p>\n\n\n\n<p>Wanneer u <code>asdf<\/code>moet je het volgende hebben <code>git<\/code> en <code>krul<\/code> ge\u00efnstalleerd. Daarna hoef je alleen nog maar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\"><code>git clone https:\/\/github.com\/asdf-vm\/asdf.git ~\/.asdf --branch v0.10.2<\/code><\/code><\/pre>\n\n\n\n<p>en voeg deze regels toe in <code>~\/.bashrc<\/code> file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">. $HOME\/.asdf\/asdf.sh\n\n. $HOME\/.asdf\/completions\/asdf.bash<\/code><\/pre>\n\n\n\n<p>Nu kun je plugins en tools installeren in je favoriete versies.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Plugin-gebaseerd beheer<\/h3>\n\n\n\n<p>In tegenstelling tot SDKMAN! <code>asdf<\/code> gebruikt plugins om tools te beheren. Dus voordat je een tool kunt installeren, moet je een plugin installeren. Laten we teruggaan naar ons voorbeeldproject en proberen de omgeving te configureren met behulp van <code>asadfsdf<\/code>.<\/p>\n\n\n\n<p>Eerst moeten we plugins installeren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">asdf plugin toevoegen java\n\nasdf plugin toevoegen maven\n\nasdf plugin toevoegen mvnd<\/code><\/pre>\n\n\n\n<p>Daarna kunnen we onze gereedschappen installeren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">asdf installeer java openjdk-17\n\nasdf maven 3.8.4 installeren\n\nasdf installeer mvnd 0.7.1<\/code><\/pre>\n\n\n\n<p>En nogmaals, in tegenstelling tot SDKMAN! <code>asdf<\/code> verandert niets in onze omgeving. Wanneer we java proberen te gebruiken, krijgen we een foutmelding zoals:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">Er is geen versie ingesteld voor opdracht Java\n\nOverweeg om een van de volgende versies toe te voegen aan je configuratiebestand in ~\/.tool-versions\n\njava openjdk-17<\/code><\/pre>\n\n\n\n<p>We moeten bestand <code>.tool-versies<\/code> in de homedirectory om standaardversies te beheren.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Lokale en globale versies<\/h3>\n\n\n\n<p>Softwareversies bijwerken met <code>asdf<\/code> is vrij eenvoudig. We installeren gewoon een nieuwe versie. Omdat dit proces geen invloed heeft op de omgeving, kunnen we dat op elk moment en op elke plaats in het bestandssysteem doen. Als we een specifieke versie van bepaalde software willen gebruiken, moeten we in de projectmap een <code>.tool-versies<\/code> bestand dat gedeeld kan worden tussen teamleden. Onthoud dat je moet garanderen dat alle teamleden <code>asdf<\/code> en plugins ge\u00efnstalleerd. De lijst met plugins is als volgt <a href=\"https:\/\/github.com\/asdf-vm\/asdf-plugins\">hier<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Versieconflicten<\/h3>\n\n\n\n<p><code>asdf<\/code> ondersteunt niet alleen programmeertalen, frameworks en tools zoals vim of kubernetess. Het ondersteunt ook databases. In zo'n geval zouden we meerdere versies van bijvoorbeeld Postgres kunnen installeren, maar slechts \u00e9\u00e9n instantie zou kunnen draaien. Dat komt omdat <code>asdf<\/code> voert commando's direct uit op je OS zonder enige scheidingslaag. Dat leidt tot problemen zoals \"poort al in gebruik\" en conflicten over bronnen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Voor- en nadelen<\/h3>\n\n\n\n<p><code>asdf<\/code> is een heel goed hulpmiddel als je in een polyglot omgeving wilt werken. Het ondersteunt veel tools, talen en frameworks. De plugin-gebaseerde architectuur maakt het erg gemakkelijk om uit te breiden. Sommige gereedschappen in de bibliotheek vereisen echter extra werk tijdens de installatie om alle vereiste afhankelijkheden aan te bieden. <code>asdf<\/code> werkt niet op Windows, zelfs niet op <a href=\"https:\/\/en.wikipedia.org\/wiki\/Windows_Subsystem_for_Linux\">WSL<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Last but not least - Docker<\/h2>\n\n\n\n<p>Toen ik hierboven sprak over het havenconflict, kenden velen van jullie de oplossing.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.docker.com\/\">Docker<\/a> zou ons in sommige gevallen kunnen helpen. Ik noem het uit plichtsbesef, omdat deze tool zo groot en complex is dat we het niet in \u00e9\u00e9n artikel kunnen bespreken.<\/p>\n\n\n\n<p>Samen met Docker moeten we een <a href=\"https:\/\/docs.docker.com\/compose\/\">docker-compose<\/a> gereedschap dat ons de mogelijkheid geeft om omgevingen met meerdere containers te co\u00f6rdineren.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Voor- en nadelen van Docker<\/h3>\n\n\n\n<p>Docker helpt ons bij het beheren van tools die specifieke bronnen nodig hebben, zoals poorten of bestanden. Het scheidt instanties in containers en geeft ons er volledige controle over. Desondanks is Docker een tool die veel complexiteit toevoegt aan onze werkomgeving en in sommige gevallen problematisch kan zijn. Een van die gevallen van het gebruik van Docker in een test is beschreven in een van onze vorige <a href=\"https:\/\/thecodest.co\/blog\/test-containers-how-to-make-tests-easier\">artikel<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Samenvattend<\/h2>\n\n\n\n<p>Ik weet dat ik niet alle tools heb beschreven die gebruikt kunnen worden voor het beheren van toolversies. Er zijn er nog veel meer, zoals <a href=\"https:\/\/www.jenv.be\/\">jEnv<\/a> die SDKMAN zou kunnen vervangen,<\/p>\n\n\n\n<p>of <a href=\"https:\/\/github.com\/nvm-sh\/nvm\">NVM<\/a> die we kunnen gebruiken om npm of <a href=\"https:\/\/rvm.io\/\">RVM<\/a> voor <a href=\"https:\/\/thecodest.co\/nl\/case-studies\/providing-a-team-of-ruby-developers-for-a-fintech-company\/\">Ruby<\/a>. Ik heb me gericht op hulpmiddelen die ik \"op het slagveld heb getest\" en aan iedereen kan aanbevelen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/thecodest.co\/contact\/\"><img loading=\"lazy\" decoding=\"async\" width=\"1283\" height=\"460\" src=\"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/interested_in_cooperation_.png\" alt=\"\" class=\"wp-image-4927\" srcset=\"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/interested_in_cooperation_.png 1283w, https:\/\/thecodest.co\/app\/uploads\/2024\/05\/interested_in_cooperation_-300x108.png 300w, https:\/\/thecodest.co\/app\/uploads\/2024\/05\/interested_in_cooperation_-1024x367.png 1024w, https:\/\/thecodest.co\/app\/uploads\/2024\/05\/interested_in_cooperation_-768x275.png 768w, https:\/\/thecodest.co\/app\/uploads\/2024\/05\/interested_in_cooperation_-18x6.png 18w, https:\/\/thecodest.co\/app\/uploads\/2024\/05\/interested_in_cooperation_-67x24.png 67w\" sizes=\"auto, (max-width: 1283px) 100vw, 1283px\" \/><\/a><\/figure>","protected":false},"excerpt":{"rendered":"<p>Is er een gulden middenweg om veel omgevingen voor een groot aantal op slechts \u00e9\u00e9n machine te beheren? Onze Java Expert Bart\u0142omiej weet het antwoord!<\/p>","protected":false},"author":2,"featured_media":3349,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[8],"tags":[],"class_list":["post-3348","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Handle multiple environments for multiple projects on one machine? - The Codest<\/title>\n<meta name=\"description\" content=\"Discover how developers can handle multiple environments for different projects on a single machine using version managers and containerization.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thecodest.co\/nl\/blog\/omgaan-met-meerdere-omgevingen-voor-meerdere-projecten-op-een-machine\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Handle multiple environments for multiple projects on one machine?\" \/>\n<meta property=\"og:description\" content=\"Discover how developers can handle multiple environments for different projects on a single machine using version managers and containerization.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thecodest.co\/nl\/blog\/omgaan-met-meerdere-omgevingen-voor-meerdere-projecten-op-een-machine\/\" \/>\n<meta property=\"og:site_name\" content=\"The Codest\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-01T11:08:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-09T13:07:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/how_to_handle_multiple_environments_for_numerous_projects_on_just_one_machine_.png\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"thecodest\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"thecodest\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/\"},\"author\":{\"name\":\"thecodest\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\"},\"headline\":\"Handle multiple environments for multiple projects on one machine?\",\"datePublished\":\"2022-12-01T11:08:38+00:00\",\"dateModified\":\"2026-03-09T13:07:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/\"},\"wordCount\":1315,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/how_to_handle_multiple_environments_for_numerous_projects_on_just_one_machine_.png\",\"articleSection\":[\"Software Development\"],\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/\",\"name\":\"Handle multiple environments for multiple projects on one machine? - The Codest\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/how_to_handle_multiple_environments_for_numerous_projects_on_just_one_machine_.png\",\"datePublished\":\"2022-12-01T11:08:38+00:00\",\"dateModified\":\"2026-03-09T13:07:45+00:00\",\"description\":\"Discover how developers can handle multiple environments for different projects on a single machine using version managers and containerization.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/how_to_handle_multiple_environments_for_numerous_projects_on_just_one_machine_.png\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/how_to_handle_multiple_environments_for_numerous_projects_on_just_one_machine_.png\",\"width\":960,\"height\":540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/handle-multiple-environments-for-multiple-projects-on-one-machine\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thecodest.co\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Handle multiple environments for multiple projects on one machine?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"name\":\"The Codest\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thecodest.co\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"width\":144,\"height\":36,\"caption\":\"The Codest\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/pl.linkedin.com\\\/company\\\/codest\",\"https:\\\/\\\/clutch.co\\\/profile\\\/codest\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\",\"name\":\"thecodest\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"caption\":\"thecodest\"},\"url\":\"https:\\\/\\\/thecodest.co\\\/nl\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Meerdere omgevingen voor meerdere projecten op \u00e9\u00e9n machine? - The Codest","description":"Ontdek hoe ontwikkelaars meerdere omgevingen voor verschillende projecten op \u00e9\u00e9n machine kunnen beheren met behulp van versiebeheer en containerisatie.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thecodest.co\/nl\/blog\/omgaan-met-meerdere-omgevingen-voor-meerdere-projecten-op-een-machine\/","og_locale":"nl_NL","og_type":"article","og_title":"Handle multiple environments for multiple projects on one machine?","og_description":"Discover how developers can handle multiple environments for different projects on a single machine using version managers and containerization.","og_url":"https:\/\/thecodest.co\/nl\/blog\/omgaan-met-meerdere-omgevingen-voor-meerdere-projecten-op-een-machine\/","og_site_name":"The Codest","article_published_time":"2022-12-01T11:08:38+00:00","article_modified_time":"2026-03-09T13:07:45+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/how_to_handle_multiple_environments_for_numerous_projects_on_just_one_machine_.png","type":"image\/png"}],"author":"thecodest","twitter_card":"summary_large_image","twitter_misc":{"Written by":"thecodest","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/#article","isPartOf":{"@id":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/"},"author":{"name":"thecodest","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76"},"headline":"Handle multiple environments for multiple projects on one machine?","datePublished":"2022-12-01T11:08:38+00:00","dateModified":"2026-03-09T13:07:45+00:00","mainEntityOfPage":{"@id":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/"},"wordCount":1315,"commentCount":0,"publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"image":{"@id":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/how_to_handle_multiple_environments_for_numerous_projects_on_just_one_machine_.png","articleSection":["Software Development"],"inLanguage":"nl-NL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/","url":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/","name":"Meerdere omgevingen voor meerdere projecten op \u00e9\u00e9n machine? - The Codest","isPartOf":{"@id":"https:\/\/thecodest.co\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/#primaryimage"},"image":{"@id":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/how_to_handle_multiple_environments_for_numerous_projects_on_just_one_machine_.png","datePublished":"2022-12-01T11:08:38+00:00","dateModified":"2026-03-09T13:07:45+00:00","description":"Ontdek hoe ontwikkelaars meerdere omgevingen voor verschillende projecten op \u00e9\u00e9n machine kunnen beheren met behulp van versiebeheer en containerisatie.","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/#primaryimage","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/how_to_handle_multiple_environments_for_numerous_projects_on_just_one_machine_.png","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/how_to_handle_multiple_environments_for_numerous_projects_on_just_one_machine_.png","width":960,"height":540},{"@type":"BreadcrumbList","@id":"https:\/\/thecodest.co\/blog\/handle-multiple-environments-for-multiple-projects-on-one-machine\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thecodest.co\/"},{"@type":"ListItem","position":2,"name":"Handle multiple environments for multiple projects on one machine?"}]},{"@type":"WebSite","@id":"https:\/\/thecodest.co\/#website","url":"https:\/\/thecodest.co\/","name":"The Codest","description":"","publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thecodest.co\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","width":144,"height":36,"caption":"The Codest"},"image":{"@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/pl.linkedin.com\/company\/codest","https:\/\/clutch.co\/profile\/codest"]},{"@type":"Person","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76","name":"thecodest","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","caption":"thecodest"},"url":"https:\/\/thecodest.co\/nl\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/posts\/3348","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/comments?post=3348"}],"version-history":[{"count":9,"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/posts\/3348\/revisions"}],"predecessor-version":[{"id":8550,"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/posts\/3348\/revisions\/8550"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/media\/3349"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/media?parent=3348"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/categories?post=3348"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/nl\/wp-json\/wp\/v2\/tags?post=3348"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}