<?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: Frank Sierra</title>
    <description>The latest articles on DEV Community by Frank Sierra (@franksierra).</description>
    <link>https://dev.to/franksierra</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%2F49599%2F13edad54-32be-4f7c-a4cd-c0bcd3535409.jpg</url>
      <title>DEV Community: Frank Sierra</title>
      <link>https://dev.to/franksierra</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/franksierra"/>
    <language>en</language>
    <item>
      <title>🧰 DevilBox: A containerized PHP dev environment (Part 1)</title>
      <dc:creator>Frank Sierra</dc:creator>
      <pubDate>Fri, 03 Jan 2020 13:29:46 +0000</pubDate>
      <link>https://dev.to/franksierra/devilbox-a-containerized-php-dev-environment-1m90</link>
      <guid>https://dev.to/franksierra/devilbox-a-containerized-php-dev-environment-1m90</guid>
      <description>&lt;p&gt;&lt;strong&gt;UPDATE (01/15/2020):&lt;/strong&gt; fixed some typos and started writing &lt;strong&gt;part two&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This year for me, is a year to share and what better way to start it than with this amazing tool.&lt;/p&gt;

&lt;p&gt;When I took the leap from .Net development to PHP back in ~2011 the easiest way to set-up a local development environment on windows was using WAMP. (Just to be clear, I love GNU/Linux but just the CLI 😅)  &lt;/p&gt;

&lt;p&gt;By the end of 2017 I discovered &lt;a href="http://devilbox.org/"&gt;DevilBox&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Reproducible and identical development environment for all host operating systems with zero configuration requirements.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I've been using it since then daily, it uses docker so you can use on the OS of your choice, as the author describes it:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The Devilbox is a modern and highly customisable dockerized PHP stack supporting full LAMP and MEAN and running on all major platforms. The main goal is to easily switch and combine any version required for local development.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can choose between &lt;code&gt;Apache&lt;/code&gt; and &lt;code&gt;Nginx&lt;/code&gt; as your web server, Almost any version of &lt;code&gt;PHP&lt;/code&gt;(for those pesky clients that refuse to let go 5.4), &lt;code&gt;MySQL&lt;/code&gt;, &lt;code&gt;Percona&lt;/code&gt; or &lt;code&gt;MariaDB&lt;/code&gt;, &lt;code&gt;PgSQL&lt;/code&gt;, &lt;code&gt;Redis&lt;/code&gt; and finally &lt;code&gt;MongoDB&lt;/code&gt;...&lt;br&gt;&lt;br&gt;
It comes with its own DNS Server so you can easily use URLs for local development.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7u581Pe1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/gp4nltfdjinbqpnq3mwt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7u581Pe1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/gp4nltfdjinbqpnq3mwt.png" alt="Local URL"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And the thing I like the most is a 'Email catch-all' so you can send emails from your apps and see them inside the dashboard without running the risk of sending real emails (using postfix of course). &lt;/p&gt;

&lt;p&gt;The installation is pretty straightforward, basically:&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="c"&gt;# Get the Devilbox&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;git clone https://github.com/cytopia/devilbox

&lt;span class="c"&gt;# Create docker-compose environment file&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;devilbox
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cp &lt;/span&gt;env-example .env

&lt;span class="c"&gt;# Edit your .env file to select the versions needed, or just&lt;/span&gt;
&lt;span class="c"&gt;# start all container&lt;/span&gt;
&lt;span class="nv"&gt;$ &lt;/span&gt;docker-compose up
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Smallest stack
&lt;/h4&gt;

&lt;p&gt;This is the smallest possible and fully functional stack you can run &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TDx5aI6i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/devilbox/artwork/master/submissions_diagrams/cytopia/02/png/architecture-small.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TDx5aI6i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/devilbox/artwork/master/submissions_diagrams/cytopia/02/png/architecture-small.png" alt="Small Stack"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;h4&gt;
  
  
  Full stack
&lt;/h4&gt;

&lt;p&gt;To better understand what is actually possible have a look at the full example&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qlIuDZFF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/devilbox/artwork/master/submissions_diagrams/cytopia/01.old/png/architecture-full.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qlIuDZFF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/devilbox/artwork/master/submissions_diagrams/cytopia/01.old/png/architecture-full.png" alt="Full stack"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;If you are interested in learning more about it or going deeper into the configurations, just let me know. I would happily write a post or two going in depth about it.&lt;/p&gt;

</description>
      <category>devilbox</category>
      <category>docker</category>
      <category>php</category>
    </item>
  </channel>
</rss>
