<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Adam Craig Johnston | Software Developer</title>
	<atom:link href="https://adamjohnston.me/feed/" rel="self" type="application/rss+xml" />
	<link>https://adamjohnston.me</link>
	<description>Software Developer, Technology Enthusiast, Retro and Husband and Dad based in Melbourne.</description>
	<lastBuildDate>Mon, 08 Jun 2026 09:49:41 +0000</lastBuildDate>
	<language>en-AU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.12</generator>
<site xmlns="com-wordpress:feed-additions:1">140396600</site>	<item>
		<title>Installing Desktop Docker</title>
		<link>https://adamjohnston.me/installing-desktop-docker/</link>
					<comments>https://adamjohnston.me/installing-desktop-docker/#respond</comments>
		
		<dc:creator><![CDATA[Adam Craig Johnston]]></dc:creator>
		<pubDate>Sat, 06 Jun 2026 11:33:34 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Using WordPress on AWS Lightsail and Docker]]></category>
		<category><![CDATA[Using WordPress on AWS Lightsail]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://adamjohnston.me/?p=1226</guid>

					<description><![CDATA[Using WordPress on AWS Lightsail and Docker Summary For Local Docker Development. We could use Docker Engine, which is the primary container runtime that runs directly on Linux and Windows servers. It is built for production use because it is lightweight, stable, and can be automated with command-line tools, system services, and CI/CD pipelines. This [&#8230;]]]></description>
										<content:encoded><![CDATA[<h2></h2>
<h2><a href="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png"><img data-attachment-id="1209" data-permalink="https://adamjohnston.me/using-wordpress-on-aws-lightsail-and-docker/title_page/" data-orig-file="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png?fit=412%2C618&amp;ssl=1" data-orig-size="412,618" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="title_page" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png?fit=200%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png?fit=683%2C1024&amp;ssl=1" loading="lazy" class="alignnone size-medium wp-image-1209" src="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394-200x300.png?resize=200%2C300" alt="" width="200" height="300" srcset="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png?resize=200%2C300&amp;ssl=1 200w, https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png?w=412&amp;ssl=1 412w" sizes="(max-width: 200px) 100vw, 200px" data-recalc-dims="1" /></a></h2>
<h2><a href="https://leanpub.com/wordpressawslightsail">Using WordPress on AWS Lightsail and Docker</a></h2>
<h2 id="summary">Summary</h2>
<p>For <strong>Local Docker Development</strong>. We could use Docker Engine, which is the primary container runtime that runs directly on Linux and Windows servers. It is built for production use because it is lightweight, stable, and can be automated with command-line tools, system services, and CI/CD pipelines. This setup provides the performance and control necessary to run applications at scale. On the other hand, Docker Desktop is meant for development on macOS, Windows, and Linux desktops. It includes Docker Engine inside a small virtual machine and adds a graphical dashboard, resource controls, Docker Compose, and optional Kubernetes for local testing. In short, Docker Engine runs containers in production, while Docker Desktop provides the developer with an easy way to build, test, and debug containers locally before deploying them to production.</p>
<p>We will install Docker Desktop for our development work on either Windows, Linux, or macOS.</p>
<h2 id="installing-docker-desktop">Installing Docker Desktop</h2>
<h3 id="windows-11-or-higher">Windows 11 or higher</h3>
<h4 id="1-prerequisites">1. Prerequisites</h4>
<p>Before installing Docker Desktop on Windows:</p>
<ul>
<li><code>Windows Version:</code> You need Windows 11 or a newer version. Docker Desktop uses Hyper-V and WSL2.</li>
<li><code>Hardware Requirements:</code> Your system must support virtualization technology enabled in BIOS. Docker Desktop for Windows requires at least 4GB RAM and recommends SSD storage for optimal performance.</li>
<li><code>Licensing:</code> Docker Desktop is free for individuals, education, and small businesses (&lt; 250 employees or &lt; $10 million revenue). Large enterprises need a paid plan.</li>
</ul>
<h4 id="2-install-wsl2-">2. Install WSL2:</h4>
<ul>
<li>
<ol>
<li>Open PowerShell as an Administrator, then enter the following command.</li>
</ol>
</li>
</ul>
<pre><code class="lang-powwrshell">dism.exe <span class="hljs-regexp">/online /</span>enable-feature <span class="hljs-regexp">/featurename:Microsoft-Windows-Subsystem-Linux /</span>all <span class="hljs-regexp">/norestart</span>
</code></pre>
<p>This enables the core WSL feature on your system.</p>
<ul>
<li>
<ol>
<li>Enable Virtual Machine Platform</li>
</ol>
</li>
</ul>
<p>WSL 2 requires the Virtual Machine Platform feature to run the Linux kernel:</p>
<pre><code>dism.exe <span class="hljs-regexp">/online /</span>enable-feature <span class="hljs-regexp">/featurename:VirtualMachinePlatform /</span>all <span class="hljs-regexp">/norestart</span>
</code></pre>
<ul>
<li>
<ol>
<li>Set WSL 2 as the Default Version</li>
</ol>
</li>
</ul>
<pre><code class="lang-powershell">wsl --install
wsl --<span class="hljs-keyword">set</span>-<span class="hljs-keyword">default</span>-version <span class="hljs-number">2</span>
</code></pre>
<p>If prompted, please reboot your system and launch Ubuntu from the Microsoft Store once to complete the setup.</p>
<h4 id="3-download-and-install-docker-desktop-for-windows-">3. Download and install Docker Desktop for Windows.</h4>
<h5 id="1-install-via-gui-recommended-for-most-users-download-manually">1. Install via GUI (Recommended for Most Users) &#8211; Download Manually</h5>
<p>The simplest and most popular way to install Docker Desktop on Windows 11 or higher is described here.</p>
<p>Go to the official download page:</p>
<p><a href="https://docs.docker.com/desktop/setup/install/windows-install/">Install Docker Desktop on Windows</a></p>
<ul>
<li>
<ol>
<li>Click <code>Download Docker Desktop for Windows</code>.</li>
</ol>
</li>
<li>
<ol>
<li>Save the file (for example, Docker Desktop Installer.exe).</li>
</ol>
</li>
<li>
<ol>
<li>Double-click the installer to start setup.</li>
</ol>
</li>
</ul>
<h5 id="2-curl-with-cmd-or-powershell">2. Curl with CMD or Powershell</h5>
<p>Below is a single CMD command to download and silently install Docker Desktop with the WSL 2 backend. Please run as Administrator.</p>
<pre><code class="lang-cmd">curl -L <span class="hljs-string">"https://desktop.docker.com/win/main/amd64/Docker%%20Desktop%%20Installer.exe"</span> -o <span class="hljs-string">"%TEMP%\DockerDesktopInstaller.exe"</span> &amp;&amp; start /w <span class="hljs-string">""</span> <span class="hljs-string">"%TEMP%\DockerDesktopInstaller.exe"</span> install --<span class="hljs-keyword">accept</span>-license --quiet --backend=wsl-<span class="hljs-number">2</span>
</code></pre>
<h5 id="3-chocolatey">3. Chocolatey</h5>
<p>To install Docker Desktop on Windows using Chocolatey, run the following, Open PowerShell as Administrator and run:</p>
<h6 id="1-check-if-chocolatey-is-installed">1. Check if Chocolatey is installed</h6>
<pre><code class="lang-powershell"><span class="hljs-attribute">choco -v</span>
</code></pre>
<p>If a version number, such as 2.2.2, appears, the process is complete. If not, please install it using the following command:</p>
<pre><code class="lang-powershell"><span class="hljs-keyword">Set</span>-ExecutionPolicy <span class="hljs-comment">Bypass -Scope Process -Force</span>; [<span class="hljs-keyword">System</span>.Net.ServicePointManager]::SecurityProtocol = [<span class="hljs-keyword">System</span>.Net.ServicePointManager]::SecurityProtocol -bor <span class="hljs-number">3072</span>; iex ((New-Object <span class="hljs-keyword">System</span>.Net.WebClient).DownloadString(<span class="hljs-string">'https://community.chocolatey.org/install.ps1'</span>))
</code></pre>
<h6 id="2-install-docker-desktop">2. Install Docker Desktop</h6>
<pre><code class="lang-powershell">choco <span class="hljs-keyword">install</span> docker-desktop -y
</code></pre>
<ul>
<li><code>choco</code> Chocolatey command-line tool.</li>
<li><code>install</code> Checks for a lastest version of the package and installs it.</li>
<li><code>docker-desktop</code> The name of the Docker Desktop package.</li>
<li><code>-y</code> automatically accepts prompts.</li>
</ul>
<h6 id="3-update-docker-desktop">3. Update Docker Desktop</h6>
<pre><code class="lang-powershell"> choco upgrade docker-desktop -y
`
</code></pre>
<ul>
<li><code>choco</code> Chocolatey command-line tool.</li>
<li><code>upgrade</code> Checks for a newer version of the package and installs it.</li>
<li><code>docker-desktop</code> The name of the Docker Desktop package.</li>
<li><code>-y</code> automatically accepts prompts.</li>
</ul>
<h3 id="install-on-macos">Install on macOS</h3>
<h4 id="1-prerequisites">1. Prerequisites</h4>
<p>Before installing Docker Desktop on macOS:</p>
<ul>
<li><code>MacOS Version</code> Requires macOS Monterey (12) or newer.</li>
<li><code>Hardware Requirements</code> You need an Intel or Apple Silicon (M1, M2, M3, or newer) CPU, at least 4 GB of RAM, and 2 GB of free disk space.</li>
<li><code>Virtualization</code> Make sure Rosetta 2 is enabled for Apple Silicon, or Hypervisor Framework is enabled for Intel.</li>
<li><code>Licensing</code> Same free-tier rules apply as Windows.</li>
</ul>
<p>Docker Desktop for macOS can be installed in three ways:</p>
<h5 id="1-install-via-gui-recommended-for-most-users-">1. Install via GUI (Recommended for Most Users)</h5>
<ul>
<li>
<ol>
<li>Download Installer &#8211; Visit the official Docker Desktop for Mac download page <a href="https://docs.docker.com/desktop/setup/install/mac-install/">Install Docker Desktop on Mac</a>.</li>
</ol>
</li>
<li>
<ol>
<li>Choose the correct version and download:
<ul>
<li><a href="https://desktop.docker.com/mac/main/arm64/Docker.dmg?utm_source=docker&amp;utm_medium=webreferral&amp;utm_campaign=docs-driven-download-mac-arm64&amp;_gl=1*lb0mcn*_gcl_au*Nzk1NTkwMTE3LjE3NjIxNjk3ODU.*_ga*MTYzMzE2OTQzNy4xNzYyMTY5Nzg1*_ga_XJWPQMJYHQ*czE3NjIzNDM5NjUkbzMkZzEkdDE3NjIzNDU0NjMkajU5JGwwJGgw">Apple Silicon <code>Docker.dmg</code> Apple Chip</a></li>
<li><a href="https://desktop.docker.com/mac/main/amd64/Docker.dmg?utm_source=docker&amp;utm_medium=webreferral&amp;utm_campaign=docs-driven-download-mac-amd64&amp;_gl=1*hc9vj6*_gcl_au*Nzk1NTkwMTE3LjE3NjIxNjk3ODU.*_ga*MTYzMzE2OTQzNy4xNzYyMTY5Nzg1*_ga_XJWPQMJYHQ*czE3NjIzNDM5NjUkbzMkZzEkdDE3NjIzNDU1NDYkajYwJGwwJGgw">Intel <code>Docker.dmg</code> Intel Chip</a></li>
</ul>
</li>
</ol>
</li>
<li>
<ol>
<li>Open the Installer
<ul>
<li>Double-click the downloaded .dmg file.</li>
<li>Drag the Docker.app icon into the Applications folder.</li>
</ul>
</li>
</ol>
</li>
<li>
<ol>
<li>Launch Docker Desktop
<ul>
<li>Open Applications folder and launch Docker.app.</li>
<li>The first time you open the program, you might be asked to enter your system password.</li>
<li>Wait for the whale docker icon to appear in the macOS status bar.</li>
</ul>
</li>
</ol>
</li>
</ul>
<h5 id="2-using-homebrew-command-line-install-homebrew-https-brew-sh-">2. Using Homebrew (Command Line Install) <a href="https://brew.sh/">Homebrew</a></h5>
<p>Homebrew is a package manager for macOS that simplifies installing applications from the command line.</p>
<ul>
<li>
<ol>
<li>Open the Terminal App, in Terminal run:</li>
</ol>
</li>
</ul>
<pre><code class="lang-bash">/<span class="hljs-keyword">bin/bash </span>-c <span class="hljs-string">"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"</span>
</code></pre>
<ul>
<li>
<ol>
<li>Once installed, verify:</li>
</ol>
</li>
</ul>
<pre><code class="lang-bash">brew <span class="hljs-comment">--version</span>
</code></pre>
<ul>
<li>
<ol>
<li>Install Docker Desktop via Homebrew</li>
</ol>
</li>
</ul>
<p>Homebrew downloads and installs the latest version of Docker Desktop that works with your Mac�s architecture, whether it is Intel or Apple Silicon.</p>
<pre><code class="lang-bash"><span class="hljs-keyword">brew </span><span class="hljs-keyword">install </span>--cask docker
</code></pre>
<ul>
<li>
<ol>
<li>Once the installation is complete, open Docker Desktop. Wait until you see the whale Docker icon in the macOS status bar.</li>
</ol>
</li>
</ul>
<pre><code class="lang-bash"><span class="hljs-keyword">open</span> /Applications/Docker.<span class="hljs-keyword">app</span>
</code></pre>
<h5 id="3-using-mac-app-store-apple-silicon-only-">3. Using Mac App Store (Apple Silicon only)</h5>
<ul>
<li>
<ol>
<li>Open the Mac App Store</li>
</ol>
</li>
<li>
<ol>
<li>In the top-left corner of the App Store window, click the Search bar.</li>
</ol>
</li>
<li>
<ol>
<li>Type Docker Desktop and press Return.</li>
</ol>
</li>
<li>
<ol>
<li>You should see the official app listed as Docker Desktop Developer Tools by Docker Inc.</li>
</ol>
</li>
<li>
<ol>
<li>macOS will automatically download and install Docker Desktop in your Applications folder. Please wait until the download finishes.</li>
</ol>
</li>
<li>
<ol>
<li>Once the installation is complete, open Docker Desktop. Wait until you see the whale Docker icon in the macOS status bar.</li>
</ol>
</li>
</ul>
<pre><code class="lang-bash"><span class="hljs-keyword">open</span> /Applications/Docker.<span class="hljs-keyword">app</span>
</code></pre>
<h3 id="install-on-linux-ubuntu-24-04-">Install on Linux (Ubuntu 24.04)</h3>
<ul>
<li>
<ol>
<li>Add Official Docker Repository</li>
</ol>
</li>
</ul>
<p>Before you install Docker Desktop, you need Docker’s CLI and daemon packages to be available through its official repositories</p>
<p>Open a terminal (Ctrl+Alt+T) and run the following:</p>
<pre><code class="lang-bash">sudo apt <span class="hljs-keyword">update</span>
sudo apt install apt-transport-https <span class="hljs-keyword">ca</span>-certificates curl gnupg -<span class="hljs-built_in">y</span>

</code>These packages enable HTTPS access to repositories and manage trusted keys.</pre>
<p>Now, import the Docker GPG key and add the official Ubuntu repo:</p>
<pre><code class="lang-bash">sudo apt install apt-transport-https ca-certificates curl gnupg
curl -fsSL <span class="hljs-string">https:</span><span class="hljs-comment">//download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg</span>
echo <span class="hljs-string">"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu noble stable"</span> | sudo tee <span class="hljs-regexp">/etc/</span>apt<span class="hljs-regexp">/sources.list.d/</span>docker.list &gt; <span class="hljs-regexp">/dev/</span><span class="hljs-literal">null</span>
</code></pre>
<p>Then update your package index:</p>
<pre><code class="lang-bash"><span class="hljs-attribute">sudo apt update</span>
</code></pre>
<ul>
<li>
<ol>
<li>Download the Docker Desktop .deb Package</li>
</ol>
</li>
</ul>
<p>Docker Desktop for Linux comes as a .deb file. To get the latest version, you can use curl</p>
<pre><code class="lang-bash">curl -fsSL -<span class="hljs-keyword">o</span> docker-desktop.<span class="hljs-keyword">deb</span> http<span class="hljs-variable">s:</span>//desktop.docker.<span class="hljs-keyword">com</span>/linux/main/amd64/docker-desktop-latest.<span class="hljs-keyword">deb</span>
</code></pre>
<ul>
<li>
<ol>
<li>Install Docker Desktop</li>
</ol>
</li>
</ul>
<p>After you download the package, use apt to install it. This will make sure all the needed dependencies are installed automatically.</p>
<pre><code class="lang-bash">sudo apt <span class="hljs-keyword">install</span> ./docker-desktop.deb
</code></pre>
<p>This process installs Docker Desktop and its main components, such as:</p>
<pre><code><span class="hljs-comment">    * Docker Engine</span>
<span class="hljs-comment">    * Docker CLI (docker command)</span>
<span class="hljs-comment">    * Docker Compose</span>
<span class="hljs-comment">    * Docker Desktop system service</span>
</code></pre>
<ul>
<li>
<ol>
<li>Enable User Access to Docker</li>
</ol>
</li>
</ul>
<p>If you want to run Docker commands without using sudo, add your user to the docker group. The newgrp command lets you apply your group changes right away, so you do not need to log out first.</p>
<pre><code class="lang-bash">sudo usermod -aG docker $<span class="hljs-keyword">USER</span>
<span class="hljs-title">newgrp</span> docker
`
</code></pre>
<ul>
<li>
<ol>
<li>Launch Docker Desktop</li>
</ol>
</li>
</ul>
<p>Now you can start Docker Desktop with</p>
<pre><code class="lang-bash">systemctl --<span class="hljs-keyword">user</span> <span class="hljs-title">start</span> docker-desktop
`
</code></pre>
<h2 id="verify-docker-desktop-installation">Verify Docker Desktop Installation</h2>
<ul>
<li>
<ol>
<li>Start Docker Desktop</li>
</ol>
</li>
<li><code>Windows:</code> Find &#8220;Docker Desktop&#8221; in the Start Menu and open it. You should then see the Docker whale icon in the system tray.</li>
<li><code>Mac:</code> Open your Applications folder, find &#8220;Docker Desktop,&#8221; and start it. The Docker whale icon will show up in the menu bar.</li>
<li><code>Linux (Ubuntu 24.04):</code> The location and icon for launching Docker Desktop can vary depending on your Linux distribution. Check your distribution’s documentation or search for &#8220;Docker Desktop&#8221; in your application launcher for more information.</li>
<li>
<ol>
<li>Verify Docker Engine and Client</li>
</ol>
</li>
</ul>
<p>Open your terminal, command prompt, then run this command.</p>
<pre><code class="lang-bash">docker <span class="hljs-comment">--version</span>
</code></pre>
<p>This command shows the version of the Docker client and engine, so you can check that Docker is installed and working from your command line.</p>
<ul>
<li>
<ol>
<li>Run a Test Container</li>
</ol>
</li>
</ul>
<p>Execute the &#8220;hello-world&#8221; container to verify that Docker can pull images, create and run containers, then run this command.</p>
<pre><code class="lang-bash">docker <span class="hljs-keyword">run</span><span class="bash"> hello-world</span>
</code></pre>
<p>If the process works correctly, you will see a message</p>
<pre><code class="lang-bash">Hello <span class="hljs-keyword">from</span> Docker!
This message shows <span class="hljs-keyword">that</span> your installation appears <span class="hljs-keyword">to</span> be working correctly.
</code></pre>
<p>This confirms that the Docker engine, container networking, image pulling, and runtime execution are functioning correctly.</p>
<h2 id="further-reading">Further Reading</h2>
<ul>
<li><a href="https://learn.microsoft.com/en-us/windows/wsl/install">How to install Linux on Windows with WSL</a></li>
<li><a href="https://chocolatey.org/install">Installing Chocolatey</a></li>
<li><a href="https://docs.docker.com/desktop/setup/install/windows-install/">Install Docker Desktop on Windows</a></li>
<li><a href="https://docs.docker.com/desktop/setup/install/mac-install/">Install Docker Desktop on Mac</a></li>
<li><a href="https://brew.sh/">Homebrew</a></li>
<li><a href="https://docs.docker.com/desktop/setup/install/linux/ubuntu/">Install Docker Desktop on Linux (Ubuntu Example)</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://adamjohnston.me/installing-desktop-docker/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1226</post-id>	</item>
		<item>
		<title>Using WordPress on AWS Lightsail and Docker &#8211; Early Access Edition</title>
		<link>https://adamjohnston.me/using-wordpress-on-aws-lightsail-and-docker/</link>
					<comments>https://adamjohnston.me/using-wordpress-on-aws-lightsail-and-docker/#respond</comments>
		
		<dc:creator><![CDATA[Adam Craig Johnston]]></dc:creator>
		<pubDate>Sun, 24 May 2026 11:52:39 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Using WordPress on AWS Lightsail and Docker]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Using WordPress on AWS Lightsail]]></category>
		<guid isPermaLink="false">https://adamjohnston.me/?p=1206</guid>

					<description><![CDATA[Learn how to deploy WordPress on AWS Lightsail using Docker. This book provides a clear, step-by-step guide to setting up the AWS CLI, creating a Lightsail virtual server, installing Docker, and deploying WordPress with Docker Compose.You will also explore how to automate WordPress theme deployments using WP-CLI and CI/CD pipelines. It is designed for developers, [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="has-text-align-left has-text-align-justify has-small-font-size" id="Using-WordPress-on-AWS-Lightsail-and-Docker"><img data-attachment-id="1209" data-permalink="https://adamjohnston.me/using-wordpress-on-aws-lightsail-and-docker/title_page/" data-orig-file="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png?fit=412%2C618&amp;ssl=1" data-orig-size="412,618" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="title_page" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png?fit=200%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623451394.png?fit=683%2C1024&amp;ssl=1" class="wp-image-1209" style="width: 150px;" src="https://i0.wp.com/adamjohnston.me/wp-content/uploads/2026/05/title_page-e1779623271306.png" alt="" data-recalc-dims="1">      </p>



<p>Learn how to deploy WordPress on AWS Lightsail using Docker.</p>



<p>This book provides a clear, step-by-step guide to setting up the AWS CLI, creating a Lightsail virtual server, installing Docker, and deploying WordPress with Docker Compose.<br>You will also explore how to automate WordPress theme deployments using WP-CLI and CI/CD pipelines.</p>



<p>It is designed for developers, site owners, and technical users who want a simpler, more reliable, and more secure approach to WordPress deployment using DevOps practices.</p>



<p>Early Access Edition</p>



<p><h2><a href="https://leanpub.com/wordpressawslightsail">Using WordPress on AWS Lightsail and Docker</a></h2></p>
]]></content:encoded>
					
					<wfw:commentRss>https://adamjohnston.me/using-wordpress-on-aws-lightsail-and-docker/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1206</post-id>	</item>
		<item>
		<title>NovuscodeLibrary update for Delphi 11</title>
		<link>https://adamjohnston.me/novuscodelibrary-update-for-delphi-11/</link>
					<comments>https://adamjohnston.me/novuscodelibrary-update-for-delphi-11/#respond</comments>
		
		<dc:creator><![CDATA[Adam Craig Johnston]]></dc:creator>
		<pubDate>Mon, 17 Jan 2022 23:46:13 +0000</pubDate>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[NovuscodeLibrary]]></category>
		<guid isPermaLink="false">https://adamjohnston.me/?p=1147</guid>

					<description><![CDATA[An update to the NovuscodeLibrary &#8211; a Delphi library of utility functions and non-visual classes for Delphi 11 is now ready. https://github.com/novuslogic/NovuscodeLibrary Changelog ToDo]]></description>
										<content:encoded><![CDATA[
<p>An update to the NovuscodeLibrary &#8211; a Delphi library of utility functions and non-visual classes for Delphi 11 is now ready.</p>



<p><a href="https://github.com/novuslogic/NovuscodeLibrary">https://github.com/novuslogic/NovuscodeLibrary</a></p>



<p><a rel="noreferrer noopener" href="https://github.com/novuslogic/NovuscodeLibrary/blob/master/Changelog.md" target="_blank">Changelog</a></p>



<p><a rel="noreferrer noopener" href="https://github.com/novuslogic/NovuscodeLibrary/blob/master/ToDo.md" target="_blank">ToDo</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://adamjohnston.me/novuscodelibrary-update-for-delphi-11/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1147</post-id>	</item>
		<item>
		<title>NovuscodeLibrary update for Delphi 10.4</title>
		<link>https://adamjohnston.me/novuscodelibrary-update-for-delphi-10-4/</link>
					<comments>https://adamjohnston.me/novuscodelibrary-update-for-delphi-10-4/#respond</comments>
		
		<dc:creator><![CDATA[Adam Craig Johnston]]></dc:creator>
		<pubDate>Sun, 24 Jan 2021 23:21:25 +0000</pubDate>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[NovuscodeLibrary]]></category>
		<guid isPermaLink="false">https://adamjohnston.me/?p=1108</guid>

					<description><![CDATA[An update to the NovuscodeLibrary &#8211; a Delphi library of utility functions and non-visual classes for Delphi 10.4 is now ready. https://github.com/novuslogic/NovuscodeLibrary The next big goal will be a Documentation Wiki using CodeImatic.codegen &#8211; CodeDoc plugin. Still a work in progress. https://github.com/novuslogic/NovuscodeLibrary/issues/11 Also an upgrade and new samples. https://github.com/novuslogic/NovuscodeLibrary/issues/12 Changelog ToDo]]></description>
										<content:encoded><![CDATA[
<p>An update to the NovuscodeLibrary &#8211; a Delphi library of utility functions and non-visual classes for Delphi 10.4 is now ready.</p>



<p><a href="https://github.com/novuslogic/NovuscodeLibrary">https://github.com/novuslogic/NovuscodeLibrary</a></p>



<p>The next big goal will be a Documentation Wiki using CodeImatic.codegen &#8211; CodeDoc plugin. Still a work in progress.</p>



<p><a href="https://github.com/novuslogic/NovuscodeLibrary/issues/11" target="_blank" rel="noreferrer noopener">https://github.com/novuslogic/NovuscodeLibrary/issues/11</a></p>



<p>Also an upgrade and new samples. </p>



<p><a href="https://github.com/novuslogic/NovuscodeLibrary/issues/12">https://github.com/</a><a href="https://github.com/novuslogic/NovuscodeLibrary/issues/12" target="_blank" rel="noreferrer noopener">novuslogic</a><a href="https://github.com/novuslogic/NovuscodeLibrary/issues/12">/NovuscodeLibrary/issues/12</a></p>



<p><a rel="noreferrer noopener" href="https://github.com/novuslogic/NovuscodeLibrary/blob/master/Changelog.md" target="_blank">Changelog</a></p>



<p><a rel="noreferrer noopener" href="https://github.com/novuslogic/NovuscodeLibrary/blob/master/ToDo.md" target="_blank">ToDo</a></p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://adamjohnston.me/novuscodelibrary-update-for-delphi-10-4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1108</post-id>	</item>
		<item>
		<title>and that was 2020 in Review.</title>
		<link>https://adamjohnston.me/and-that-was-2020-in-review/</link>
					<comments>https://adamjohnston.me/and-that-was-2020-in-review/#respond</comments>
		
		<dc:creator><![CDATA[Adam Craig Johnston]]></dc:creator>
		<pubDate>Tue, 29 Dec 2020 11:05:02 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://adamjohnston.me/?p=1085</guid>

					<description><![CDATA[There has been little content on this blog, due to the human malware sweeping the world. Some people have loss their jobs, or had reduced hours in my case I have been hyper-busy with my main employment. It seems my work still is keeping me away, from my side projects and adding content to this [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>There has been little content on this blog, due to the human malware sweeping the world. </p>



<p>Some people have loss their jobs, or had reduced hours in my case I have been  hyper-busy with my main employment.</p>



<p>It seems my work still is keeping me away,  from my side projects and adding content to this blog. However, some progress has happened.</p>



<p>So my thoughts for the new year &#8230; more time on my side projects with luck.</p>



<p>Say safe and happy new year.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://adamjohnston.me/and-that-was-2020-in-review/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1085</post-id>	</item>
		<item>
		<title>and that was 2019 in Review.</title>
		<link>https://adamjohnston.me/and-that-was-2019-in-review/</link>
					<comments>https://adamjohnston.me/and-that-was-2019-in-review/#respond</comments>
		
		<dc:creator><![CDATA[Adam Craig Johnston]]></dc:creator>
		<pubDate>Mon, 30 Dec 2019 12:00:36 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[DelphiAWSSDK]]></category>
		<category><![CDATA[Lazarus]]></category>
		<category><![CDATA[NovuscodeLibrary]]></category>
		<category><![CDATA[Using WordPress on Amazon Lightsail]]></category>
		<guid isPermaLink="false">https://adamjohnston.me/?p=1020</guid>

					<description><![CDATA[This blog has been very quiet this year, lots of reasons, mostly work-related has kept me away. Some milestones were achieved this year: NovuscodeLibrary NovuscodeLibrary is a Delphi library of utility functions and non-visual classes. New package NovusCodeLibrary_cURL.dpk &#8211; cURL function library New package NovusCodeLibrary_WebUtils.dpk &#8211; Web functions library Now support Delphi 10.3 and packages [&#8230;]]]></description>
										<content:encoded><![CDATA[
<div class="wp-container-1 wp-block-group"><div class="wp-block-group__inner-container">
<p>This blog has been very quiet this year, lots of reasons, mostly work-related has kept me away.</p>
<p>Some milestones were achieved this year:</p>
<h3>NovuscodeLibrary</h3>
<p>NovuscodeLibrary is a Delphi library of utility functions and non-visual classes.</p>
<ul>
<li>New package NovusCodeLibrary_cURL.dpk &#8211; cURL function library</li>
<li>New package NovusCodeLibrary_WebUtils.dpk &#8211; Web functions library</li>
<li>Now support Delphi 10.3 and packages</li>
</ul>
<p><a href="https://github.com/novuslogic/NovuscodeLibrary">https://github.com/novuslogic/NovuscodeLibrary</a></p>
<p><a href="https://github.com/novuslogic/NovuscodeLibrary/blob/master/Changelog.md">Changelog</a></p>
<p><a href="https://github.com/novuslogic/NovuscodeLibrary/blob/master/ToDo.md">ToDo</a></p>
<p>Adding features or fixing bugs to Novuscodelibrary, it’s general done organically. The next feature supported:</p>
<ul>
<li>The Delphi Package Manager Project <a href="https://github.com/DelphiPackageManager/">https://github.com/DelphiPackageManager/</a></li>
</ul>
<h3>CodeImatic</h3>
<p>CodeImatic is a PascalScript based toolchain for building and deployment.</p>
<h4>CodeImatc.build</h4>
<p>CodeImatic.build is a PascalScript based build and deployment engine.</p>
<p><a href="https://github.com/novuslogic/CodeImatic.build">https://github.com/novuslogic/CodeImatic.build</a></p>
<h4>CodeImatc.codegen</h4>
<p>CodeImatic.codegen is a PascalScript template driven source code and static website generator.</p>
<p><a href="https://github.com/novuslogic/CodeImatic.codegen">https://github.com/novuslogic/CodeImatic.codegen</a></p>
<p>CodeImatic &#8211; Multiple features have been added and moving towards  an early beta release next year.</p>
<h3>DelphiAWSSDK</h3>
<p>The Delphi AWS SDK enables Delphi/Pascal developers to easily work with Amazon Web Services.</p>
<p><a href="https://github.com/novuslogic/DelphiAWSSDK" target="_blank" rel="noopener noreferrer">DelphiAWSSDK</a></p>
<p><a href="https://github.com/novuslogic/DelphiAWSSDK/blob/master/Changelog.md">Changelog</a></p>
<p>The next version of DelphiAWSDK v.04 will have a full translation of Amazon DynamoDB <a href="https://aws.amazon.com/dynamodb/">https://aws.amazon.com/dynamodb/ </a>using the new experimental Code-Generation based on CodeImatic.codegen <a href="https://github.com/novuslogic/CodeImatic.codegen">https://github.com/novuslogic/CodeImatic.codegen</a></p>
<h3>Using WordPress on Amazon Lightsail</h3>
<p><a href="https://leanpub.com/wordpressawslightsail/">https://leanpub.com/wordpressawslightsail/</a></p>
<p>I’m develpoing  a new book called &#8220;Using WordPress on Amazon Lightsail&#8221; which will be pushlished early next year, so sign up with the &#8220;Notify Me When This Is Published” button.</p>
<p>Happy New Year.</p>
</div></div>
]]></content:encoded>
					
					<wfw:commentRss>https://adamjohnston.me/and-that-was-2019-in-review/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1020</post-id>	</item>
		<item>
		<title>DelphiAWSSDK v0.3.0</title>
		<link>https://adamjohnston.me/delphiawssdk-v0-3-0/</link>
					<comments>https://adamjohnston.me/delphiawssdk-v0-3-0/#respond</comments>
		
		<dc:creator><![CDATA[Adam Craig Johnston]]></dc:creator>
		<pubDate>Mon, 05 Nov 2018 07:14:00 +0000</pubDate>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[DelphiAWSSDK]]></category>
		<category><![CDATA[Lazarus]]></category>
		<guid isPermaLink="false">https://adamjohnston.me/?p=1005</guid>

					<description><![CDATA[Delphi AWS SDK has new support for Lazarus / fpc 1.8 or higher. https://github.com/novuslogic/DelphiAWSSDK/releases/tag/v0.3.0 Summary of updates New Lazarus CreateTable1 DynamoDB Sample Refactored Core for Lazarus / fpc 1.8 or higher Moved Samples Samples\DynamoDB to Samples\DynamoDB\Delphi]]></description>
										<content:encoded><![CDATA[<p dir="auto">Delphi AWS SDK has new support for Lazarus / fpc 1.8 or higher.</p>
<p dir="auto"><a href="https://github.com/novuslogic/DelphiAWSSDK/releases/tag/v0.3.0" target="_blank" rel="noopener noreferrer">https://github.com/novuslogic/DelphiAWSSDK/releases/tag/v0.3.0</a></p>
<p>Summary of updates</p>
<ul>
<li>New Lazarus CreateTable1 DynamoDB Sample</li>
<li>Refactored Core for Lazarus / fpc 1.8 or higher</li>
<li>Moved Samples Samples\DynamoDB to Samples\DynamoDB\Delphi</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://adamjohnston.me/delphiawssdk-v0-3-0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1005</post-id>	</item>
		<item>
		<title>DelphiAWSSDK v0.2.0</title>
		<link>https://adamjohnston.me/delphiawssdk_v0-2-0/</link>
					<comments>https://adamjohnston.me/delphiawssdk_v0-2-0/#respond</comments>
		
		<dc:creator><![CDATA[Adam Craig Johnston]]></dc:creator>
		<pubDate>Mon, 03 Sep 2018 14:05:01 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[DelphiAWSSDK]]></category>
		<guid isPermaLink="false">https://adamjohnston.me/?p=989</guid>

					<description><![CDATA[The Delphi AWS SDK enables Delphi/Pascal developers to easily work with Amazon Web Services. https://github.com/novuslogic/DelphiAWSSDK/releases/tag/v0.2.0 Summary of updates Updated support Delphi XE to Delphi X10.2 Tested support for Windows 32/64Bit, MacOSX 32Bit New TAmazonIndyRESTClient and TAmazonDelphiRESTClient classes Updated TAmazonSignatureV4 class to be less reliant on Indy,  allowing for cross-platform development. THashSHA2 supported in unit Amazon.Utils for Delphi XE8 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p dir="ltr">The Delphi AWS SDK enables Delphi/Pascal developers to easily work with Amazon Web Services.</p>
<p dir="ltr"><a href="https://github.com/novuslogic/DelphiAWSSDK/releases/tag/v0.2.0">https://github.com/novuslogic/DelphiAWSSDK/releases/tag/v0.2.0</a></p>
<p dir="ltr">Summary of updates</p>
<ul>
<li>Updated support Delphi XE to Delphi X10.2</li>
<li>Tested support for Windows 32/64Bit, MacOSX 32Bit</li>
<li>New TAmazonIndyRESTClient and TAmazonDelphiRESTClient classes</li>
<li>Updated TAmazonSignatureV4 class to be less reliant on Indy,  allowing for cross-platform development.</li>
<li>THashSHA2 supported in unit Amazon.Utils for Delphi XE8 and up.</li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://adamjohnston.me/delphiawssdk_v0-2-0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">989</post-id>	</item>
		<item>
		<title>DelphiLibSass &#8211;  A Delphi wrapper for LibSass</title>
		<link>https://adamjohnston.me/delphilibsass-delphi-wrapper-libsass/</link>
					<comments>https://adamjohnston.me/delphilibsass-delphi-wrapper-libsass/#comments</comments>
		
		<dc:creator><![CDATA[Adam Craig Johnston]]></dc:creator>
		<pubDate>Fri, 07 Jul 2017 10:51:49 +0000</pubDate>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Scss]]></category>
		<guid isPermaLink="false">http://52.63.51.177/?p=937</guid>

					<description><![CDATA[DelphiLibSass is Delphi wrapper around libsass a C/C++ implementation of a Sass compiler. Based on the version of libsass 3.4 http://libsass.org DelphiLibSass API is simply composed of a main TDelphiLibSass class: TDelphiLibSass.ConvertToCss converts a SCSS string to a CSS TDelphiLibSass.ConvertFileToCss converts a SCSS file to a CSS Basic example on how to use the Delphi [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>
DelphiLibSass is Delphi wrapper around <a href="https://github.com/sass/libsass" target="_blank">libsass</a> a C/C++ implementation of a Sass compiler.
</p>
<p>
Based on the version of libsass 3.4 <a href="http://libsass.org" target="_blank">http://libsass.org</a>
</p>
<p>
DelphiLibSass API is simply composed of a main <strong>TDelphiLibSass</strong> class:
</p>
<p><strong>TDelphiLibSass.ConvertToCss</strong> converts a SCSS string to a CSS</p>
<pre class="brush: delphi; title: ; notranslate">
Try
  FDelphiLibSass := TDelphiLibSass.Create('libsass.dll');
  FDelphiLibSass.LoadDll;

  FScssResult := FDelphiLibSass.
      ConvertToCss('$font-stack: Helvetica, sans-serif; body { font: 100% $font-stack; }');

  writeln(FScssResult.CSS);
Finally
  FScssResult.Free;
  FDelphiLibSass.Free; 
end;
</pre>
<p><strong>TDelphiLibSass.ConvertFileToCss</strong> converts a SCSS file to a CSS</p>
<pre class="brush: delphi; title: ; notranslate">
Try
  FDelphiLibSass := TDelphiLibSass.Create('libsass.dll');
  FDelphiLibSass.LoadDll;

  FScssResult := FDelphiLibSass.ConvertFileToCss('test.scss');

  writeln(FScssResult.CSS);
Finally
  FScssResult.Free;
  FDelphiLibSass.Free; 
end;
</pre>
<p>Basic example on how to use the Delphi wrapper</p>
<p><a href="https://github.com/novuslogic/DelphiLibSass/tree/master/Sample" target="_blank">https://github.com/novuslogic/DelphiLibSass/tree/master/Sample</a></p>
<h3>References</h3>
<p>DelphiLibSass<br />
<a href="https://github.com/novuslogic/DelphiLibSass/" target="_blank">https://github.com/novuslogic/DelphiLibSass/</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://adamjohnston.me/delphilibsass-delphi-wrapper-libsass/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">937</post-id>	</item>
		<item>
		<title>DelphiVersions</title>
		<link>https://adamjohnston.me/delphiversions/</link>
					<comments>https://adamjohnston.me/delphiversions/#respond</comments>
		
		<dc:creator><![CDATA[Adam Craig Johnston]]></dc:creator>
		<pubDate>Tue, 31 Jan 2017 12:21:12 +0000</pubDate>
				<category><![CDATA[Delphi]]></category>
		<guid isPermaLink="false">http://52.63.51.177/?p=881</guid>

					<description><![CDATA[I&#8217;ve many projects that require different versions of Delphi.&#160; I&#8217;ve viewed many include files,&#160; not completely satisfy with any solution that was clean. DelphiVersions is an include file of Delphi version compiler directives,&#160;&#160; supporting&#160; Delphi 2007 &#8211; Delphi 10.2. https://github.com/novuslogic/DelphiVersions]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve many projects that require different versions of Delphi.&nbsp; I&#8217;ve viewed many include files,&nbsp; not completely satisfy with any solution that was clean.</p>
<p>DelphiVersions is an include file of Delphi version compiler directives,&nbsp;&nbsp; supporting&nbsp; Delphi 2007 &#8211; Delphi 10.2.</p>
<p><a href="https://github.com/novuslogic/DelphiVersions" target="_blank">https://github.com/novuslogic/DelphiVersions</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://adamjohnston.me/delphiversions/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">881</post-id>	</item>
	</channel>
</rss>
