<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Marc Auberer</title>
    <description>The latest articles on DEV Community by Marc Auberer (@marcauberer).</description>
    <link>https://dev.to/marcauberer</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F552662%2Fd905d71f-e130-4ded-94bd-3231965c82f8.jpeg</url>
      <title>DEV Community: Marc Auberer</title>
      <link>https://dev.to/marcauberer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/marcauberer"/>
    <language>en</language>
    <item>
      <title>Compose Generator - Update 1.5.0</title>
      <dc:creator>Marc Auberer</dc:creator>
      <pubDate>Thu, 16 Dec 2021 13:43:53 +0000</pubDate>
      <link>https://dev.to/marcauberer/compose-generator-update-150-125n</link>
      <guid>https://dev.to/marcauberer/compose-generator-update-150-125n</guid>
      <description>&lt;p&gt;If you haven’t read about Compose Generator yet, visit the introduction article &lt;a href="https://dev.to/marcauberer/compose-generator-deploy-your-app-in-seconds-21o6"&gt;here&lt;/a&gt;. This particular article shows which features / improvements were added in version 1.5.0 of Compose Generator.&lt;/p&gt;

&lt;p&gt;Apart from optimization and bugfixes, there are a few new features to discuss in the following parts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Watchtower integration
&lt;/h2&gt;

&lt;p&gt;This update adds support for auto-updating of Docker images, using Watchtower. The requirement for that is, that the tag of the Docker image does not change with the update. If you set the tag &lt;code&gt;latest&lt;/code&gt; you should be good to go!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NgdlGiPJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o1cvg0d0iblfm22r12aq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NgdlGiPJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o1cvg0d0iblfm22r12aq.png" alt="Image description" width="800" height="93"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Compose Generator asks you if you want to enable Watchtower after selecting the other service templates. It will ask you which services you want to enable Watchtower for. Any selected service will get the &lt;code&gt;com.centurylabs.watchtower.enable&lt;/code&gt; label.&lt;/p&gt;

&lt;p&gt;If Watchtower is enabled. The compose file contains an additional service:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;companion-watchtower&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;command&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;--interval&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;30"&lt;/span&gt;
  &lt;span class="na"&gt;depends_on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;database-postgres&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;condition&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;service_started&lt;/span&gt;
    &lt;span class="na"&gt;db-admin-adminer&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;condition&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;service_started&lt;/span&gt;
    &lt;span class="na"&gt;frontend-accent&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;condition&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;service_started&lt;/span&gt;
    &lt;span class="na"&gt;frontend-angular&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;condition&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;service_started&lt;/span&gt;
  &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;containrrr/watchtower:latest&lt;/span&gt;
  &lt;span class="na"&gt;restart&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;unless-stopped&lt;/span&gt;
  &lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;bind&lt;/span&gt;
      &lt;span class="na"&gt;source&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;/var/run/docker.sock&lt;/span&gt;
      &lt;span class="na"&gt;target&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;/var/run/docker.sock&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Major performance optimization for CCom
&lt;/h2&gt;

&lt;p&gt;Compose Generator internally uses the &lt;a href="https://github.com/compose-generator/ccom"&gt;CCom compiler toolchain&lt;/a&gt; to evaluate conditional sections and conditional statements, based on JSON input. CCom offers a CLI, which Compose Generator called previously. This CLI executable enriches the user input and then calls the compiler executable with all required inputs. After the last update we executed several benchmarks for CCom, which have shown that this additional executable fork costs a lot of performance. &lt;br&gt;&lt;br&gt;
As Compose Generator uses CCom very often (~20 times even if only one template was selected), CCom can be optimized quite a bit by calling the CCom compiler executable directly without going via the CLI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Further reading about Compose Generator
&lt;/h2&gt;

&lt;p&gt;The key concept behind Compose Generator is, that it is durable and extensible. Therefore it is possible to create own predefined service templates and add them to the list of selectable services. If you do so, feel free to hand it in as a community contribution on GitHub!&lt;/p&gt;

&lt;p&gt;There will be more upcoming articles regarding in-depth information about creating predefined service templates and all available cli subcommands!&lt;/p&gt;




&lt;p&gt;Thank you for your interest and for reading this article.&lt;br&gt;
If you want to learn more about Compose Generator, please visit the official documentation at &lt;a href="https://www.compose-generator.com"&gt;www.compose-generator.com&lt;/a&gt; and the &lt;a href="https://github.com/compose-generator/compose-generator"&gt;open source project on GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Header image source: Photo by &lt;a href="https://unsplash.com/@exdigy"&gt;Dominik Lückmann&lt;/a&gt; on &lt;a href="https://unsplash.com/"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>go</category>
      <category>opensource</category>
      <category>devops</category>
    </item>
    <item>
      <title>Compose Generator - Update 1.3.0</title>
      <dc:creator>Marc Auberer</dc:creator>
      <pubDate>Tue, 16 Nov 2021 19:57:42 +0000</pubDate>
      <link>https://dev.to/marcauberer/compose-generator-update-130-247j</link>
      <guid>https://dev.to/marcauberer/compose-generator-update-130-247j</guid>
      <description>&lt;p&gt;If you haven't read about Compose Generator yet, visit the introduction article &lt;a href="https://dev.to/marcauberer/compose-generator-deploy-your-app-in-seconds-21o6"&gt;here&lt;/a&gt;. This particular article shows which features / improvements were added in version 1.3.0 of Compose Generator.&lt;/p&gt;

&lt;p&gt;Apart from optimization and bugfixes, there are a few new features to discuss in the following parts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5yarZ0fb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/practicaldev/image/fetch/s--MIG-e4zF--/c_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rwkkyic5v2tcx0nxx8m2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5yarZ0fb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/practicaldev/image/fetch/s--MIG-e4zF--/c_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rwkkyic5v2tcx0nxx8m2.png" alt="Compose Generator Logo" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  CLI auto-completion
&lt;/h2&gt;

&lt;p&gt;With version 1.3.0 Compose Generator for Linux starts to support cli auto-completion. For Linux installations with the package manager (&lt;code&gt;apt-get&lt;/code&gt;, &lt;code&gt;yum&lt;/code&gt;, &lt;code&gt;dnf&lt;/code&gt;) the auto-completion script is installed by default with the new version. The dockerized Compose Generator does not support auto-completion, for Windows auto-completion will be shipped with one of the next releases.&lt;/p&gt;

&lt;p&gt;To enable the cli auto-completion on Linux, execute the following two commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;set &lt;/span&gt;&lt;span class="nv"&gt;PROG&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;compose-generator
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;source&lt;/span&gt; /etc/bash_completion.d/compose-generator
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Command to delete custom templates
&lt;/h2&gt;

&lt;p&gt;Up to now, you were only able to save and load custom templates, but not delete them. This feature is included in version 1.3.0 and you can now remove unused custom templates and save disk space.&lt;/p&gt;

&lt;p&gt;To execute the new command, use &lt;code&gt;compose-generator template delete &amp;lt;template-name&amp;gt;&lt;/code&gt; (Short form &lt;code&gt;cg t d &amp;lt;template-name&amp;gt;&lt;/code&gt;). If you omit the optional argument &lt;code&gt;template-name&lt;/code&gt; here, you will get prompted with a list of found templates, where you can select the one to delete.&lt;br&gt;
For safety reasons, you will be prompted if you really want to delete a template when you execute the command.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3GGyv4-W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/781imlcp8h7k58z0t33g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3GGyv4-W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/781imlcp8h7k58z0t33g.png" alt="Image description" width="718" height="105"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Command to create blank predefined templates
&lt;/h2&gt;

&lt;p&gt;After getting a feature request from a predefined template contributor, Compose Generator now brings a new command for creating a blank predefined service template to start from scratch with a template contribution much faster. The command only works in a development environment and is not included in the production version. Thus, you will have to clone the &lt;a href="https://github.com/compose-generator/compose-generator"&gt;GitHub repo&lt;/a&gt; and build the Compose Generator executable by yourself using the &lt;code&gt;build.bat&lt;/code&gt; / &lt;code&gt;build.sh&lt;/code&gt; script.&lt;/p&gt;

&lt;p&gt;Type &lt;code&gt;compose-generator predefined-template new&lt;/code&gt; (Short form: &lt;code&gt;cg p n&lt;/code&gt;) to use the new command.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_RY2yxOe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p39q8qioxrm0eucr1lbi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_RY2yxOe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p39q8qioxrm0eucr1lbi.png" alt="Image description" width="779" height="132"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Further reading about Compose Generator
&lt;/h2&gt;

&lt;p&gt;The key concept behind Compose Generator is, that it is durable and extensible. Therefore it is possible to create own predefined service templates and add them to the list of selectable services. If you do so, feel free to hand it in as a community contribution on GitHub!&lt;/p&gt;

&lt;p&gt;There will be more upcoming articles regarding in-depth information about creating predefined service templates and all available cli subcommands!&lt;/p&gt;




&lt;p&gt;Thank you for your interest and for reading this article.&lt;br&gt;
If you want to learn more about Compose Generator, please visit the official documentation at &lt;a href="https://www.compose-generator.com"&gt;www.compose-generator.com&lt;/a&gt; and the &lt;a href="https://github.com/compose-generator/compose-generator"&gt;open source project on GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Header image source: Photo by &lt;a href="https://unsplash.com/@exdigy"&gt;Dominik Lückmann&lt;/a&gt; on &lt;a href="https://unsplash.com/"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>go</category>
      <category>opensource</category>
      <category>devops</category>
    </item>
    <item>
      <title>Compose Generator - Update 1.2.0</title>
      <dc:creator>Marc Auberer</dc:creator>
      <pubDate>Sat, 06 Nov 2021 23:36:19 +0000</pubDate>
      <link>https://dev.to/marcauberer/compose-generator-update-120-e6i</link>
      <guid>https://dev.to/marcauberer/compose-generator-update-120-e6i</guid>
      <description>&lt;p&gt;If you haven't read about Compose Generator yet, visit the introduction article &lt;a href="https://dev.to/marcauberer/compose-generator-deploy-your-app-in-seconds-21o6"&gt;here&lt;/a&gt;. This particular article shows which features / improvements were added in version 1.2.0 of Compose Generator.&lt;/p&gt;

&lt;p&gt;Apart from optimization and bugfixes, there are a few new features to discuss in the following parts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5yarZ0fb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/practicaldev/image/fetch/s--MIG-e4zF--/c_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rwkkyic5v2tcx0nxx8m2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5yarZ0fb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://res.cloudinary.com/practicaldev/image/fetch/s--MIG-e4zF--/c_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rwkkyic5v2tcx0nxx8m2.png" alt="Compose Generator Logo" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Traefik as a new proxy template
&lt;/h2&gt;

&lt;p&gt;Version 1.2.0 brings support for a second reverse proxy service in addition to JWilder Nginx / Let's Encrypt Companion called Traefik. Traefik is a highly customizable edge router which brings a massive amount of built-in features: Reverse proxying, automatic service-detection, load balancing, no-downtime upgrades/configuring and supports Docker, Docker Swarm, Kubernetes, AWS, etc.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;For supporting Traefik, we added the proxy-labels field to the predefined service configuration spec, because configuring Traefik service detection works with Docker labels.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7OIjIAfl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2AKTRKGqprEX0MfvUMY6YKpQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7OIjIAfl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2AKTRKGqprEX0MfvUMY6YKpQ.png" alt="Traefik Web UI" width="800" height="551"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The most interesting feature about Traefik is the built-in web interface, which gets exposed on port 8080 (customizable). It gives you an overview which and how many services are running and if they are healthy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Warning&lt;/strong&gt;: The web UI is not password protected per default, so before you use it in production, please un-expose the web UI or enable a password protection.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generating from remote config files
&lt;/h2&gt;

&lt;p&gt;Since the beginning, Compose Generator supports generating stacks from configuration files (&lt;a href="https://github.com/compose-generator/compose-generator/blob/release/v1.2.x/media/example-config.yml"&gt;Example configuration&lt;/a&gt;). With this update it supports remote configuration files. Compose Generator will download the config file from the url and parse it directly. You can pass a remote config file the same way as a file on disk, but as an url instead of the filepath:&lt;br&gt;
&lt;code&gt;cg --config https://example.com/config.yml&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Support for .yml and .yaml
&lt;/h2&gt;

&lt;p&gt;Up to now, Compose Generator could only load &lt;code&gt;docker-compose.yml&lt;/code&gt; and was not able to load &lt;code&gt;docker-compose.yaml&lt;/code&gt;. This should have changed now. Compose Generator searches for &lt;code&gt;docker-compose.yaml&lt;/code&gt; first. If this file does not exist, it falls back to &lt;code&gt;docker-compose.yml&lt;/code&gt;. The default value is still &lt;code&gt;docker-compose.yml&lt;/code&gt; to not cause any compatibility issues.&lt;/p&gt;

&lt;h2&gt;
  
  
  Further reading about Compose Generator
&lt;/h2&gt;

&lt;p&gt;The key concept behind Compose Generator is, that it is durable and extensible. Therefore it is possible to create own predefined service templates and add them to the list of selectable services. If you do so, feel free to hand it in as a community contribution on GitHub!&lt;/p&gt;

&lt;p&gt;There will be more upcoming articles regarding in-depth information about creating predefined service templates and all available cli subcommands!&lt;/p&gt;




&lt;p&gt;Thank you for your interest and for reading this article.&lt;br&gt;
If you want to learn more about Compose Generator, please visit the official documentation at &lt;a href="https://www.compose-generator.com"&gt;www.compose-generator.com&lt;/a&gt; and the &lt;a href="https://github.com/compose-generator/compose-generator"&gt;open source project on GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Header image source: Photo by &lt;a href="https://unsplash.com/@exdigy"&gt;Dominik Lückmann&lt;/a&gt; on &lt;a href="https://unsplash.com/"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>go</category>
      <category>opensource</category>
      <category>devops</category>
    </item>
    <item>
      <title>Compose Generator - Create Service Templates</title>
      <dc:creator>Marc Auberer</dc:creator>
      <pubDate>Thu, 04 Nov 2021 23:11:06 +0000</pubDate>
      <link>https://dev.to/marcauberer/compose-generator-create-service-templates-ond</link>
      <guid>https://dev.to/marcauberer/compose-generator-create-service-templates-ond</guid>
      <description>&lt;p&gt;Note: If you didn't read the &lt;a href="https://dev.to/marcauberer/compose-generator-deploy-your-app-in-seconds-21o6"&gt;first article&lt;/a&gt; of this series yet, please do this first. This article builds onto base knowledge about Compose Generator.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frwkkyic5v2tcx0nxx8m2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frwkkyic5v2tcx0nxx8m2.png" alt="Compose Generator logo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Compose Generator currently offers &amp;gt; 60 high quality predefined service templates, which you can use out of the box. You can find a list of all supported templates &lt;a href="https://www.compose-generator.com/supported-services/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There are a lot of awesome software projects out there that Compose Generator does not support yet. That's where you come into play (more about this at the end of the article) …&lt;/p&gt;

&lt;h2&gt;
  
  
  Structure of a predefined service template
&lt;/h2&gt;

&lt;p&gt;A predefined service template consists of the following file structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;template-name&amp;gt;
├─volumes
│ ├─volume1
│ ├─volume2
│ ├─volume3
│ └─...
├─config.json
├─service.yml
├─environment.env
└─README.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Configuration file (&lt;code&gt;config.json&lt;/code&gt;)&lt;/strong&gt;: Holds the metadata for a service template like name, label, questions, volumes, secrets, etc. in JSON format. &lt;a href="https://github.com/compose-generator/compose-generator/blob/main/predefined-services/frontend/bitbucket/config.json" rel="noopener noreferrer"&gt;Example file&lt;/a&gt;, &lt;a href="https://github.com/compose-generator/compose-generator/tree/release/v1.2.x/predefined-services#configuration-file-example-file" rel="noopener noreferrer"&gt;json spec&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Service file (&lt;code&gt;service.yml&lt;/code&gt;)&lt;/strong&gt;: Can be seen as a part of the &lt;code&gt;docker-compose.yml&lt;/code&gt; file. It contains information about one particular service. It allows the usage of placeholders like &lt;code&gt;${{PLACEHOLDER_EXAMPLE}}&lt;/code&gt; which can be populated by defining question variables in the &lt;code&gt;config.json&lt;/code&gt; file. Compose Generator replaces all placeholders in the generating process. &lt;a href="https://github.com/compose-generator/compose-generator/blob/main/predefined-services/frontend/bitbucket/service.yml" rel="noopener noreferrer"&gt;Example file&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Environment file (&lt;code&gt;environment.env&lt;/code&gt;)&lt;/strong&gt;: Contains any sensitive data like database credentials or any kind of secrets. This file is included in the &lt;code&gt;.gitignore&lt;/code&gt; file per default and allows placeholders as well. &lt;a href="https://github.com/compose-generator/compose-generator/blob/main/predefined-services/frontend/bitbucket/environment.env" rel="noopener noreferrer"&gt;Example file&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Readme file (&lt;code&gt;README.md&lt;/code&gt;)&lt;/strong&gt;: Contains detailed information about the service template for the user. It is best practice to first introduce the software for which the service template is made for and subsequently explain the setup process. Take a look at existing service template Readme's to get some inspiration. &lt;a href="https://github.com/compose-generator/compose-generator/blob/main/predefined-services/frontend/bitbucket/README.md" rel="noopener noreferrer"&gt;Example file&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The volumes directory is not mandatory but can be used for storing configuration files, which your template may use. If the volume directory does not exist but is bound to the container in the &lt;code&gt;service.yml&lt;/code&gt; file, Compose Generator will create an empty directory.&lt;/p&gt;

&lt;h2&gt;
  
  
  Steps to create a predefined template
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Choose a software which you want to create a template for.&lt;/li&gt;
&lt;li&gt;Search an image registry where the Docker image of your software can be obtained from.&lt;/li&gt;
&lt;li&gt;Research which volumes, environment variables, networks and companion services your service needs.&lt;/li&gt;
&lt;li&gt;Fork and clone the &lt;a href="https://github.com/compose-generator/compose-generator" rel="noopener noreferrer"&gt;Git repository&lt;/a&gt; of Compose Generator to your local dev system and create a new branch from the latest &lt;code&gt;release/vX.Y.x&lt;/code&gt; branch. Best practice for the branch name is e.g &lt;code&gt;service/adguard-home&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Classify the type of the template to one of &lt;code&gt;frontend&lt;/code&gt;, &lt;code&gt;backend&lt;/code&gt;, &lt;code&gt;database&lt;/code&gt; or &lt;code&gt;db-admin&lt;/code&gt;. You will need this classification in the next step.&lt;/li&gt;
&lt;li&gt;Go to the directory &lt;code&gt;predefined-services/&amp;lt;your-type&amp;gt;&lt;/code&gt; and create a new sub-directory for the template (has to be &lt;a href="https://betterprogramming.pub/string-case-styles-camel-pascal-snake-and-kebab-case-981407998841" rel="noopener noreferrer"&gt;kebab-cased&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Create the file structure above in the directory you just created. The &lt;code&gt;config.json&lt;/code&gt; and the &lt;code&gt;service.yml&lt;/code&gt; file can copied from an existing template and modified accordingly.&lt;/li&gt;
&lt;li&gt;If your service template contains a Dockerfile, please optimize it for minimal image size and make use of multi-stage builds if appropriate.&lt;/li&gt;
&lt;li&gt;If your service has companion services (e.g. PhpMyAdmin for MySQL), navigate to the &lt;code&gt;config.json&lt;/code&gt; file of the companion service and change the property preselected to a &lt;a href="https://github.com/compose-generator/ccom#single-condition-mode---mode-single" rel="noopener noreferrer"&gt;CCom single condition&lt;/a&gt;. See the &lt;a href="https://github.com/compose-generator/compose-generator/blob/main/predefined-services/db-admin/phpmyadmin/config.json#L3" rel="noopener noreferrer"&gt;PhpMyAdmin config file&lt;/a&gt; to get an idea how this condition can look like.&lt;/li&gt;
&lt;li&gt;Edit the table in &lt;code&gt;docs/docs/supported-service.md&lt;/code&gt; and insert your service to the respective section. Mind the alphabetical order here.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Test the template
&lt;/h2&gt;

&lt;p&gt;Build Compose Generator from source by executing &lt;code&gt;build.sh&lt;/code&gt; (Linux) or &lt;code&gt;build.bat&lt;/code&gt; (Windows) from the root dir of the repo. The build output can be found in the bin subdirectory.&lt;/p&gt;

&lt;p&gt;For testing your local predefined service templates, you can execute &lt;code&gt;./compose-generator -irf&lt;/code&gt; (Linux) or &lt;code&gt;.\compose-generator.exe -irf&lt;/code&gt; (Windows). Your service template should now show up in the respective list. Select it (and maybe some other random templates) and let Compose Generator generate the stack for you. After that, Docker Compose should launch your stack without any error message.&lt;/p&gt;

&lt;h2&gt;
  
  
  Contribute your own templates
&lt;/h2&gt;

&lt;p&gt;The pledge of the project is to be extensible and community-driven. Therefore, feel free to create service templates by yourself for missing services and to hand in your predefined service templates in form of community contributions on GitHub. Visit the guide &lt;a href="https://github.com/compose-generator/compose-generator/blob/main/predefined-services/README.md" rel="noopener noreferrer"&gt;here&lt;/a&gt; for more information.&lt;/p&gt;

&lt;h2&gt;
  
  
  Further reading about Compose Generator
&lt;/h2&gt;

&lt;p&gt;There will be more upcoming articles regarding in-depth information about all available cli subcommands and best practices for the usage of Compose Generator!&lt;/p&gt;




&lt;p&gt;Thank you for your interest and for reading this article.&lt;br&gt;
If you want to learn more about Compose Generator, please visit the official documentation at &lt;a href="https://www.compose-generator.com" rel="noopener noreferrer"&gt;www.compose-generator.com&lt;/a&gt; and the &lt;a href="https://github.com/compose-generator/compose-generator" rel="noopener noreferrer"&gt;open source project on GitHub&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>docker</category>
      <category>go</category>
      <category>opensource</category>
      <category>devops</category>
    </item>
    <item>
      <title>Compose Generator - Update 1.1.0</title>
      <dc:creator>Marc Auberer</dc:creator>
      <pubDate>Sat, 23 Oct 2021 01:05:32 +0000</pubDate>
      <link>https://dev.to/marcauberer/compose-generator-update-110-4hnf</link>
      <guid>https://dev.to/marcauberer/compose-generator-update-110-4hnf</guid>
      <description>&lt;p&gt;If you haven't read about Compose Generator yet, visit the introduction article &lt;a href="https://dev.to/marcauberer/compose-generator-deploy-your-app-in-seconds-21o6"&gt;here&lt;/a&gt;. This particular article shows which features / improvements were added in version 1.1.0 of Compose Generator.&lt;/p&gt;

&lt;h2&gt;
  
  
  Service adding / generating rework
&lt;/h2&gt;

&lt;p&gt;Originally, the &lt;code&gt;generate&lt;/code&gt; sub-command only supported generating a stack from predefined service templates whereas the &lt;code&gt;add&lt;/code&gt; command could only handle fully custom services. If you needed a mixture of both e.g. an own frontend service and an own backend service, combined with the predefined MySQL service, you formerly would have to generate the MySQL without frontend and backend with the &lt;code&gt;generate&lt;/code&gt; command and subsequently add the other two services with the &lt;code&gt;add&lt;/code&gt; command.&lt;/p&gt;

&lt;p&gt;With v1.1.0 the &lt;code&gt;generate&lt;/code&gt; command offers the menu option Custom service in each predefined service selection list at the bottom. If you select it, you get an "empty" service template like with the &lt;code&gt;add&lt;/code&gt; command. In the same move we added support for predefined templates for the &lt;code&gt;add&lt;/code&gt; command.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fq8Y4EcP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7sqzj9cuqzag9o9crc6g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fq8Y4EcP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7sqzj9cuqzag9o9crc6g.png" alt="Image description" width="800" height="276"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Service template tester
&lt;/h2&gt;

&lt;p&gt;Compose Generator v1.1.0 introduces a new testing workflow for predefined service templates. Up to now, only the JSON and YAML files were validated in the sense of syntax, whereas now, every service template gets tested fully-automated on GitHub Actions. The workflow runs on every pull request which touches any predefined template.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BcHFlLig--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nfiov2tynug8ev77gywt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BcHFlLig--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nfiov2tynug8ev77gywt.png" alt="Image description" width="800" height="577"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Logging and error handling mechanism
&lt;/h2&gt;

&lt;p&gt;Up to v1.0.0 Compose Generator did not collect execution logs and printed the error messages + stack traces directy to the console. As this is not very consumer friendly, Compose Generator v1.1.0 introduces the maintainence of log files. These can be used to comprehend the execution path for reproducing bugs et al. The logfiles can be found at &lt;code&gt;/usr/lib/compose-generator/log&lt;/code&gt; on Linux and &lt;code&gt;./log&lt;/code&gt; relative to the Compose Generator executable on Windows.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wK_bIcQj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1qg3lwf0przr7tdyfts3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wK_bIcQj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1qg3lwf0przr7tdyfts3.png" alt="Image description" width="800" height="279"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Further reading about Compose Generator
&lt;/h2&gt;

&lt;p&gt;The key concept behind Compose Generator is, that it is durable and extensible. Therefore it is possible to create own predefined service templates and add them to the list of selectable services. If you do so, feel free to hand it in as a community contribution on GitHub!&lt;/p&gt;

&lt;p&gt;There will be more upcoming articles regarding in-depth information about creating predefined service templates and all available cli subcommands!&lt;/p&gt;




&lt;p&gt;Thank you for interest and for reading this article.&lt;br&gt;
If you want to learn more about Compose Generator, please visit the official documentation at &lt;a href="https://www.compose-generator.com"&gt;www.compose-generator.com&lt;/a&gt; and the open source project on GitHub (&lt;a href="https://github.com/compose-generator/compose-generator"&gt;github.com/compose-generator/compose-generator&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Header image source: Photo by &lt;a href="https://unsplash.com/@exdigy"&gt;Dominik Lückmann&lt;/a&gt; on &lt;a href="https://unsplash.com/"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>go</category>
      <category>opensource</category>
      <category>devops</category>
    </item>
    <item>
      <title>Compose Generator - Deploy your App in Seconds</title>
      <dc:creator>Marc Auberer</dc:creator>
      <pubDate>Tue, 12 Oct 2021 09:38:22 +0000</pubDate>
      <link>https://dev.to/marcauberer/compose-generator-deploy-your-app-in-seconds-21o6</link>
      <guid>https://dev.to/marcauberer/compose-generator-deploy-your-app-in-seconds-21o6</guid>
      <description>&lt;p&gt;Application deployment with Docker and Kubernetes is easier than ever before, but could it even be much faster and much more seamless? This is where Compose Generator comes into play by helping you with common Docker tasks with a command line interface.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frwkkyic5v2tcx0nxx8m2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frwkkyic5v2tcx0nxx8m2.png" alt="Compose Generator logo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploy a project
&lt;/h2&gt;

&lt;p&gt;With Compose Generator you only have to do the following four steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install Compose Generator (instructions below)&lt;/li&gt;
&lt;li&gt;Clone repository of your project from a VCS&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;compose-generator install&lt;/code&gt; to install Docker and Docker Compose (can be skipped if you have Docker and Docker Compose already installed)&lt;/li&gt;
&lt;li&gt;Run&lt;code&gt;compose-generator -r&lt;/code&gt; to generate your deployment configuration and run it subsequently&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F40pglfauugbss1eyzrld.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F40pglfauugbss1eyzrld.gif" alt="Screencast animation"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lets dive a bit further into Compose Generator to better point out the various advantages and why you should consider using it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generate Docker Compose configurations
&lt;/h2&gt;

&lt;p&gt;Compose Generator can be seen as a deployment assistant and acts like a wrapper around your Docker installation. As you see above, Compose Generator can be used to install Docker and Docker Compose on your system, so you only need to care about installing Compose Generator in the first place. The main feature of Compose Generator is - as the name might suggest - to generate the Docker Compose configuration for your project. Moreover, Compose Generator can generate secrets (like e.g. database credentials, etc.), manage volumes, networks, environment variables and much more.&lt;/p&gt;

&lt;p&gt;In the following example, we’re going to deploy a basic Angular Application, connected to a Spring Boot API and a MySQL database. Compose Generator supports a wide variety of service templates (tendence growing), which you can find listed &lt;a href="https://www.compose-generator.com/supported-services/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example stack deployment
&lt;/h2&gt;

&lt;p&gt;However it is recommended to install Compose Generator on your host system as described &lt;a href="https://www.compose-generator.com/install/linux" rel="noopener noreferrer"&gt;here&lt;/a&gt;, for this beginners guide you can also run it as Docker container, by executing following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;docker run &lt;span class="nt"&gt;--rm&lt;/span&gt; &lt;span class="nt"&gt;-it&lt;/span&gt; &lt;span class="nt"&gt;-v&lt;/span&gt; /var/run/docker.sock:/var/run/docker.sock 
     &lt;span class="nt"&gt;-v&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;:/cg/out chillibits/compose-generator
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Docker pulls the image and runs it in interactive mode. The &lt;code&gt;$(pwd)&lt;/code&gt; placeholder stands for the current path on your Docker host system and gets mapped to the &lt;code&gt;/cg/out&lt;/code&gt; directory within the container. This means, that the resulting output files, like &lt;code&gt;docker-compose.yml&lt;/code&gt; will later be located in the directory, in which you execute the command above.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F44okpm4gg6dullkg478s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F44okpm4gg6dullkg478s.png" alt="CLI view 1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Compose Generator asks you for the name of your project and if you want to create a production-ready configuration instead of the default development config, to hide your services behind a reverse proxy. Compose Generator offers a variety of predefined service templates, which you can arrange for your needs like in a building block system. For our example, we will select &lt;code&gt;Angular&lt;/code&gt; in the frontend section, &lt;code&gt;Spring with Maven&lt;/code&gt; in the backend section and &lt;code&gt;MySQL&lt;/code&gt; in the database section. For each item you select from the templates list, Compose Generator asks you service-specific questions, that are important for setting them up. After having answered all questions for &lt;code&gt;MySQL&lt;/code&gt; you can see, that Compose Generator pre-selected PhpMyAdmin, because it is the default db admin system for MySQL. You can deselect it or press enter to continue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvegf2rhr6fpxzpmz6eaq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvegf2rhr6fpxzpmz6eaq.png" alt="CLI view 2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Tip: You can execute &lt;code&gt;compose-generator -a&lt;/code&gt; to launch the Compose Generator Cli in advanced mode. Then you also get questions for advanced stack customization. Find more information about cli options of the generate sub-command &lt;a href="https://www.compose-generator.com/usage/generate/#options" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After having all questions answered, Compose Generator will generate following file structure in the directory where it was called in:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;current directory
├─volumes
│ ├─volume1
│ ├─volume2
│ ├─volume3
│ └─...
├─.gitignore
├─.cg.yml
├─docker-compose.yml
└─environment.env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;docker-compose.yml&lt;/code&gt; file contains your Docker Compose configuration. If your containers require any secrets, they are stored in the &lt;code&gt;environment.env&lt;/code&gt; file, which will be attached to all regarding containers at runtime. As you see above, Compose Generator also creates the volume directories for you. Depending on the stack template you’re choosing, there already will be files in the volume directories (such as configuration files, etc.) to take as much workload off your shoulders as possible.&lt;br&gt;
The &lt;code&gt;.gitignore&lt;/code&gt; file in the root directory contains the &lt;code&gt;environment.env&lt;/code&gt; file to not accidentally committing any secrets to a VCS.&lt;br&gt;
&lt;code&gt;.cg.yml&lt;/code&gt; is a configuration file for Compose Generator itself to remember some selections of yours.&lt;/p&gt;
&lt;h2&gt;
  
  
  Removing services from a configuration
&lt;/h2&gt;

&lt;p&gt;Imagine, you have generated a stack with &lt;code&gt;Angular&lt;/code&gt;, &lt;code&gt;Spring with Maven&lt;/code&gt;, &lt;code&gt;MySQL&lt;/code&gt; and &lt;code&gt;PhpMyAdmin&lt;/code&gt;, but you want to switch to MongoDB as you have to deal with more document-like data structures in your Spring application.&lt;br&gt;
What you can do is to ask Compose Generator to remove the services &lt;code&gt;MySQL&lt;/code&gt; and &lt;code&gt;PhpMyAdmin&lt;/code&gt; and add &lt;code&gt;MongoDB&lt;/code&gt; instead.&lt;/p&gt;

&lt;p&gt;To remove the first two, you can execute the following command in the directory where the &lt;code&gt;docker-compose.yml&lt;/code&gt; file for your configuration lives:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;compose-generator remove
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Select the two services &lt;code&gt;MySQL&lt;/code&gt; and &lt;code&gt;PhpMyAdmin&lt;/code&gt; and press the enter key. Compose Generator will remove those services from your compose configuration without leaving residues, e.g. unused volumes, networks, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adding services to a configuration
&lt;/h2&gt;

&lt;p&gt;To now add the service for &lt;code&gt;MongoDB&lt;/code&gt;, you can execute following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;compose-generator add mongodb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After answering all questions, the &lt;code&gt;docker-compose.yml&lt;/code&gt; file should now contain a service &lt;code&gt;database-mongodb&lt;/code&gt; and the services &lt;code&gt;database-mysql&lt;/code&gt; and &lt;code&gt;db-admin-phpmyadmin&lt;/code&gt; should be gone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Further reading about Compose Generator
&lt;/h2&gt;

&lt;p&gt;The key concept behind Compose Generator is, that it is durable and extensible. Therefore it is possible to create own predefined service templates and add them to the list of selectable services. If you do so, feel free to hand it in as a community contribution on GitHub!&lt;/p&gt;

&lt;p&gt;There will be more upcoming articles regarding in-depth information about creating predefined service templates and all available cli subcommands!&lt;/p&gt;




&lt;p&gt;Thank you for interest and for reading this article.&lt;br&gt;
If you want to learn more about Compose Generator, please visit the official documentation at &lt;a href="https://www.compose-generator.com" rel="noopener noreferrer"&gt;www.compose-generator.com&lt;/a&gt; and the open source project on GitHub (&lt;a href="https://github.com/compose-generator/compose-generator" rel="noopener noreferrer"&gt;github.com/compose-generator/compose-generator&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Header image source: Photo by &lt;a href="https://unsplash.com/@exdigy" rel="noopener noreferrer"&gt;Dominik Lückmann&lt;/a&gt; on &lt;a href="https://unsplash.com" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>go</category>
      <category>opensource</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
