Docksal https://www.jamesdflynn.com/ en A Docksal Training -- ON DEMAND! https://www.jamesdflynn.com/development/docksal-training-demand <span class="field field--name-title field--type-string field--label-hidden">A Docksal Training -- ON DEMAND!</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">jflynn</span></span> <span class="field field--name-created field--type-created field--label-hidden">Fri, 12/18/2020 - 18:49</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>It has been quite a while since I last posted anything, mainly because 2020 has been 2020 and I haven't been in the best mindset for several months. I've had a lot of difficulty focusing on anything, and as a result, I've found my motivation has gone pretty much away.</p> <p>However, last month I decided that lack of motivation be damned. I spent quite a bit of time converting a training that I had prepped to give at camps and conferences into a YouTube video series. This is a 12 lesson series that takes the viewer from a brief intro to Docker all the way up to building a custom Docksal application that combines 2 servers with a NodeJS backend and a PHP backend to simulate a production decoupled web application setup.</p> <p>Here is a quick rundown of the videos and what you might expect from each:</p> <h2>Part 1 - Intro and Docker Basics</h2> <article class="media media--type-video media--view-mode-embedded" data-align="center"><div class="field field--name-field-media-video-embed-field field--type-string field--label-hidden field__item"><iframe src="/media/oembed?url=https%3A//youtu.be/IXSUohtU4Rc&amp;max_width=854&amp;max_height=480&amp;hash=DooTW5_8qSJ-BVamUudATEMilxTtugwEfXjxKzxzJ_M" frameborder="0" allowtransparency="" width="854" height="480" class="media-oembed-content" title="Let's Learn Docksal Part 1: About This Series and Intro to Docker"></iframe> </div> </article><p>The first video is a starting point for someone who may or may not have much experience with Docker. I wouldn't recommend learning React without knowing some JavaScript, so I can't recommend using Docksal without having a bit of an understanding of Docker. </p> <h2>Part 2 - The Gush</h2> <article class="media media--type-video media--view-mode-embedded" data-align="center"><div class="field field--name-field-media-video-embed-field field--type-string field--label-hidden field__item"><iframe src="/media/oembed?url=https%3A//youtu.be/wqc5crJhs-4&amp;max_width=854&amp;max_height=480&amp;hash=pZ_kX-InTzF17oeArpYEKP9R1mAOYMHJojkcaFhu4ho" frameborder="0" allowtransparency="" width="854" height="480" class="media-oembed-content" title="Let's Learn Docksal Part 2: History of Docksal and Why it's Great"></iframe> </div> </article><p>This second part is basically where I fanboy about Docksal and why I think it's great.  If you want to hear me ranting about the benefits of Docksal and everything it brings to the party, this is your clip!</p> <h2>Part 3 - Docksal Stacks</h2> <article class="media media--type-video media--view-mode-embedded" data-align="center"><div class="field field--name-field-media-video-embed-field field--type-string field--label-hidden field__item"><iframe src="/media/oembed?url=https%3A//youtu.be/ujvAwNLIHeM&amp;max_width=854&amp;max_height=480&amp;hash=YQbsmeToTL81b7SiFg1aJ-CULMona-HP52iLXgXGWcQ" frameborder="0" allowtransparency="" width="854" height="480" class="media-oembed-content" title="Let's Learn Docksal Part 3: Docksal Stacks"></iframe> </div> </article><p>Docksal uses .yml files that define various stacks. Stacks are collections of services that make up an application. If you want to learn more, stop reading and check out the video!</p> <h2>Part 4 - Docksal Services</h2> <article class="media media--type-video media--view-mode-embedded" data-align="center"><div class="field field--name-field-media-video-embed-field field--type-string field--label-hidden field__item"><iframe src="/media/oembed?url=https%3A//youtu.be/4wrMI4PoMFo&amp;max_width=854&amp;max_height=480&amp;hash=ZUii_krDd6_cAkbYlQ6-UC1GbDyY0MrOpnbyRo4yHao" frameborder="0" allowtransparency="" width="854" height="480" class="media-oembed-content" title="Let's Learn Docksal Part 4: Docksal Services"></iframe> </div> </article><p>Remember way back under the last video when I used the word "services"? I remember. This video goes into what services are available to make up the stacks that are preconfigured or that you build on your own.</p> <h2>Part 5 -Getting Started with Docksal</h2> <article class="media media--type-video media--view-mode-embedded" data-align="center"><div class="field field--name-field-media-video-embed-field field--type-string field--label-hidden field__item"><iframe src="/media/oembed?url=https%3A//youtu.be/EEpSdOj-JhI&amp;max_width=854&amp;max_height=480&amp;hash=CW7zH_Z1nnCjYubZ-Xu1fPzaa5pmgt_Vae_Dwg4Hlrs" frameborder="0" allowtransparency="" width="854" height="480" class="media-oembed-content" title="Let's Learn Docksal Part 5: Getting Started Using Docksal"></iframe> </div> </article><p> Yeah, I know... 5 videos in is a long time to wait for a "Getting Started" vid, but the wait is worth it. Get your editors ready, roll up your sleeves, and get learning!</p> <h2>Part 6 - Using a Boilerplate</h2> <article class="media media--type-video media--view-mode-embedded" data-align="center"><div class="field field--name-field-media-video-embed-field field--type-string field--label-hidden field__item"><iframe src="/media/oembed?url=https%3A//youtu.be/c0ftkoQeP5U&amp;max_width=854&amp;max_height=480&amp;hash=fUJC5kw8UbOopx9ejFUwGo1lzshGiMxSIkejwXANWqI" frameborder="0" allowtransparency="" width="854" height="480" class="media-oembed-content" title="Let's Learn Docksal Part 6: Starting with a Boilerplate"></iframe> </div> </article><p>It's not just for warming the kettle anymore! A boilerplate is a ready-to-go application that you just need to start and it works. In part 6 we're going to look at spinning up a project with one of these boilerplates.</p> <h2>Part 7 - Installing a Drupal Site</h2> <article class="media media--type-video media--view-mode-embedded" data-align="center"><div class="field field--name-field-media-video-embed-field field--type-string field--label-hidden field__item"><iframe src="/media/oembed?url=https%3A//youtu.be/BtmWR4z8KUI&amp;max_width=854&amp;max_height=480&amp;hash=tnYAUE15JXTMj4g12hOO9pvx_6dpDxLhppiXk6Fgtn4" frameborder="0" allowtransparency="" width="854" height="480" class="media-oembed-content" title="Let's Learn Docksal Part 7: Installing a Drupal Site"></iframe> </div> </article><p>This is what we've been working up to. This video will show you how to use Docksal to install and run a brand new Drupal site on your local machine. It takes less time than you think!</p> <h2>Part 8 - Doing More with Docksal and Drupal</h2> <article class="media media--type-video media--view-mode-embedded" data-align="center"><div class="field field--name-field-media-video-embed-field field--type-string field--label-hidden field__item"><iframe src="/media/oembed?url=https%3A//youtu.be/6TbRidTTnf8&amp;max_width=854&amp;max_height=480&amp;hash=7uGDRCyMELiy5SZ4TWwusbHF7-Z1VlZrasPsFfddEtI" frameborder="0" allowtransparency="" width="854" height="480" class="media-oembed-content" title="Let's Learn Docksal Part 8: Doing More with Docksal and Drupal"></iframe> </div> </article><p> Let's take it to 11. This tutorial goes over some of the ways we can further customize a local site, going so far as making the local Docksal environment actually mirror our hosting platform!</p> <h2>Parts 9, 10, 11 - Advanced Customization Projects</h2> <article class="media media--type-video media--view-mode-embedded" data-align="center"><div class="field field--name-field-media-video-embed-field field--type-string field--label-hidden field__item"><iframe src="/media/oembed?url=https%3A//youtu.be/Z-71qNytH4I&amp;max_width=854&amp;max_height=480&amp;hash=mprWZtQkAZ73y-NbwAh6dbK6y__OQEkByaeZgd9P2es" frameborder="0" allowtransparency="" width="854" height="480" class="media-oembed-content" title="Let's Learn Docksal Part 9: Advanced Customization Project 1"></iframe> </div> </article><article class="media media--type-video media--view-mode-embedded" data-align="center"><div class="field field--name-field-media-video-embed-field field--type-string field--label-hidden field__item"><iframe src="/media/oembed?url=https%3A//youtu.be/cchLa7o7iDw&amp;max_width=854&amp;max_height=480&amp;hash=NXD_G7J8FxN6Tq7h7S9RzXOE2GYBph157KQQ8VbGpQY" frameborder="0" allowtransparency="" width="854" height="480" class="media-oembed-content" title="Let's Learn Docksal Part 10: Advanced Customization Project 2"></iframe> </div> </article><p> </p> <article class="media media--type-video media--view-mode-embedded" data-align="center"><div class="field field--name-field-media-video-embed-field field--type-string field--label-hidden field__item"><iframe src="/media/oembed?url=https%3A//youtu.be/5G5o3VWvm6w&amp;max_width=854&amp;max_height=480&amp;hash=7jjqbXLoSVOH3LstuAfQ1NuB4MbnkmTJDRzub8pOtr8" frameborder="0" allowtransparency="" width="854" height="480" class="media-oembed-content" title="Let's Learn Docksal Part 11: Advanced Customization Project 3"></iframe> </div> </article><p>Each of these gets a little more in-depth with the customizations and they build off the previous for the most part.  I had a lot of fun coming up with Project 3.  What do you think?</p> <h2>Part 12 - Local Files</h2> <article class="media media--type-video media--view-mode-embedded" data-align="center"><div class="field field--name-field-media-video-embed-field field--type-string field--label-hidden field__item"><iframe src="/media/oembed?url=https%3A//youtu.be/xrTg-1bI43g&amp;max_width=854&amp;max_height=480&amp;hash=TGmzg7t7rH-6jMfYRZMwhB0P7xBL7Ip73hCOKF4mb_U" frameborder="0" allowtransparency="" width="854" height="480" class="media-oembed-content" title="Let's Learn Docksal Part 12: Using Local Files"></iframe> </div> </article><p> Let's call this one a bit of housekeeping. It doesn't matter what you use Docksal for if you end up committing your API keys to a public repo. (Don't do that!) This one goes over how to use local Docksal files to keep your safe, secret info safe and secret.  </p> <h2>Conclusion</h2> <p>This is my first attempt at instructional videos, but hopefully not my last.  I'll be posting stuff as I can when I have time, but I'd really like to know what you all would like to see me cover. Feel free to comment on one of the videos above, on this post, on Twitter, or wherever else I might see it. Be sure to subscribe to my channel <a href="https://www.youtube.com/channel/UC8CnBd5PYNhtA0SWcYqO5hQ">JDDoesDev</a> on YouTube to get notified when I put new stuff up.  Until then, you're my favorite person.</p> </div> <div class="field field--name-field-category field--type-entity-reference field--label-above"> <div class="field__label">Category</div> <div class="field__item"><a href="/development" hreflang="en">Development</a></div> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/taxonomy/term/24" hreflang="en">Docksal</a></div> <div class="field__item"><a href="/taxonomy/term/11" hreflang="en">Drupal</a></div> <div class="field__item"><a href="/taxonomy/term/12" hreflang="en">Drupal Planet</a></div> </div> </div> <div class="field field--name-field-comments field--type-disqus-comment field--label-visually_hidden"> <div class="field__label visually-hidden">Comments</div> <div class="field__item"><drupal-render-placeholder callback="Drupal\disqus\Element\Disqus::displayDisqusComments" arguments="0=A%20Docksal%20Training%20--%20ON%20DEMAND%21&amp;1=https%3A//www.jamesdflynn.com/development/docksal-training-demand&amp;2=node/27" token="3CCsxH3kt-RDlNfcljLCt3Ce6GoXYD77q8d_yOL60RY"></drupal-render-placeholder></div> </div> <div class="field field--name-field-header-image-entity field--type-entity-reference field--label-hidden field__item"><article class="media media--type-image media--view-mode-embedded"> <div class="field field--name-image field--type-image field--label-hidden field__item"> <img src="/sites/default/files/negative-space-compiled-code-screen.jpg" width="1200" height="800" alt="Generic &quot;Look at my screen full of code&quot; screen" loading="lazy" typeof="foaf:Image" /> </div> </article> </div> Sat, 19 Dec 2020 00:49:45 +0000 jflynn 27 at https://www.jamesdflynn.com Docksal gets a Training https://www.jamesdflynn.com/development/docksal-gets-training <span class="field field--name-title field--type-string field--label-hidden">Docksal gets a Training</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">jflynn</span></span> <span class="field field--name-created field--type-created field--label-hidden">Tue, 11/12/2019 - 17:19</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p name="c1e8" id="c1e8">In July of last year I started a new job as a developer with a new agency. During my first week, in between meetings, HR trainings, and all the other fun things that happen during onboarding, I was introduced to the preferred local development environment that was being used on most of the projects.</p> <p name="360e" id="360e">It was lightweight, based on Docker, it ran easily, and it was extremely easy to configure. Prior to this, I had bounced around from local setup to local setup. My local dev environment resume included such hits as MAMP, WAMP, Acquia Dev Desktop, Kalabox, VAMPD, DrupalVM, Vagrant, ScotchBox, VirtualBox, native LAMP stacks, and everything in between. All of them had their strengths and weaknesses, but none of them really had that spark that really hooked me.</p> <h2 name="532e">Enter Docksal.</h2> <p name="fabb" id="fabb">When I first started using Docksal, I thought it was just like any other setup, and to a point, it is. It creates a reusable environment that can be shared across multiple developers and setup to mimic a hosting provider to a certain point, but the two things that really grabbed me were how easy it was to get started and how fast it was compared to other systems. Docksal has one key, killer feature in my opinionated mind, and that’s the fact that the entire application is written in Bash. The primary binary (which may or may not be the name of my upcoming one-man, off-Broadway, off-any stage show) begins with <code>#! /usr/bin/env bash</code> and runs on any system that has the bash executable, which encompasses Linux (of course), macOS, and now Windows thanks to WSL and the ability to add Ubuntu.</p> <p name="0b23" id="0b23">One thing that was missing, though, was a training guide. It has AMAZING documentation, available at <a data-href="https://docs.docksal.org" href="https://docs.docksal.io" rel="noopener" target="_blank">https://docs.docksal.io</a>, including a great getting started walkthrough, but for someone just starting out using it who might not have guidance and support from people they work with, it might take a little getting used to.</p> <p name="0346" id="0346">If you know me, you know that I enjoy talking at conferences. I’ve given over two dozen presentations at several types of events from local meetup groups to national level conferences. If you don’t know me, you just learned something new about me. Since I enjoy talking in front of people so much, the next logical step was to find something I’m familiar with and make a training of it. Turns out, I’m familiar with Docksal.</p> <p name="6a19" id="6a19">I submitted my pitch for a training to <a data-href="https://www.nedcamp.org" href="https://www.nedcamp.org" rel="noopener" target="_blank">NEDCamp</a>, the New England Drupal Camp, and they accepted it. Since I now had a reason to write a training, I began writing a training. Initially, I started with a very high-level outline, and eventually built a framework for my training. Thanks to the nature of open source, I was able to use many of the features that <a href="https://docs.docksal.io">https://docs.docksal.io</a> already had in order to make my training seem a little familiar to current users and easily accessible to new users.</p> <p name="6a19" id="6a19">The first go at this training will be at NEDCamp 2019 on Friday, November 22nd. This will be the first time a dedicated training spot has been used to train on Docksal, and I'm extremely excited to see how it goes and how to improve. After that training, I will make my handbook available online, eventually to be merged into the <a href="https://github.com/docksal">Docksal Github</a> repo as part of the documentation. I have had help from numerous people in building this training, especially from the Docksal maintainers, Sean Dietrich, Leonid Makarov, Alexei Chekiulaev; folks who have reviewed what I've written so far, Dwayne McDaniel and Wes Ruvalcaba; and people who have challenged me to learn more about Docksal, whose numbers are too high to list them all.</p> <p name="6a19" id="6a19">If you're interested in learning how to use Docksal or what it's all about, consider attending my training at NEDCamp on November 22nd. You can find all the details on the <a href="https://nedcamp.org/trainings/2019/modern-local-development-docksal">NEDCamp training page</a>, and if you can't make it, be sure to watch for the handbook to be released soon.</p> <p name="6a19" id="6a19">Since I'm still working on the finishing touches, why not take the time to let me know what you would like to get out of this type of training or what you wish you would have known when learning how to use Docksal or a similar product in the comments and where you feel extra attention should be placed.</p> </div> <div class="field field--name-field-category field--type-entity-reference field--label-above"> <div class="field__label">Category</div> <div class="field__item"><a href="/development" hreflang="en">Development</a></div> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/taxonomy/term/12" hreflang="en">Drupal Planet</a></div> <div class="field__item"><a href="/taxonomy/term/24" hreflang="en">Docksal</a></div> <div class="field__item"><a href="/taxonomy/term/11" hreflang="en">Drupal</a></div> <div class="field__item"><a href="/taxonomy/term/25" hreflang="en">NEDCamp</a></div> </div> </div> <div class="field field--name-field-comments field--type-disqus-comment field--label-visually_hidden"> <div class="field__label visually-hidden">Comments</div> <div class="field__item"><drupal-render-placeholder callback="Drupal\disqus\Element\Disqus::displayDisqusComments" arguments="0=Docksal%20gets%20a%20Training&amp;1=https%3A//www.jamesdflynn.com/development/docksal-gets-training&amp;2=node/24" token="Bz1-Riqy3ai2IYaGF2R2NRgnrMNZO8JIy7b8U9rGNhM"></drupal-render-placeholder></div> </div> <div class="field field--name-field-header-image-entity field--type-entity-reference field--label-hidden field__item"><article class="media media--type-image media--view-mode-embedded"> <div class="field field--name-image field--type-image field--label-hidden field__item"> <img src="/sites/default/files/Screen%20Shot%202019-11-12%20at%205.40.36%20PM.png" width="703" height="436" alt="Screenshot of VSCode with minified HTML" loading="lazy" typeof="foaf:Image" /> </div> </article> </div> Tue, 12 Nov 2019 23:19:43 +0000 jflynn 24 at https://www.jamesdflynn.com