Radek Sprta (Posts about dockerization)https://radeksprta.eu/categories/dockerization.atom2024-01-07T02:28:56ZRadek SprtaNikolaRun Nikola Blog in Dockerhttps://radeksprta.eu/posts/run-nikola-blog-in-docker/2020-08-28T08:27:20+02:002020-08-28T08:27:20+02:00Radek Sprta<div><p>A lot of you might have a blog or a personal website created by static generator. Thanks to their simple requirements (just a webserver, really), they are an ideal starting point for your dockerization journey. In this post, I will explain how to run a <a href="https://getnikola.com">Nikola</a> website in a container. Nikola powers this website and is my static generator of choice. But the steps should be fairly similar for other generators out there.</p>
<h3>Dockerfile</h3>
<p>The dockerfile I am using looks like this:</p>
<div class="code"><pre class="code literal-block"><span class="k">FROM</span><span class="w"> </span><span class="s">python:latest</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="s">builder</span>
<span class="c"># Copy the whole repository into Docker container</span>
<span class="k">COPY</span><span class="w"> </span>.<span class="w"> </span>.<span class="w"> </span>
<span class="c"># Build the blog</span>
<span class="k">RUN</span><span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>nikola<span class="w"> </span><span class="se">\</span>
<span class="w"> </span><span class="o">&&</span><span class="w"> </span>run<span class="w"> </span>nikola<span class="w"> </span>build
<span class="k">FROM</span><span class="w"> </span><span class="s">nginx:alpine</span>
<span class="c"># Copy output to the default nginx directory</span>
<span class="k">COPY</span><span class="w"> </span>--from<span class="o">=</span>builder<span class="w"> </span>output<span class="w"> </span>/usr/share/nginx/html
<span class="c"># Copy nginx host configuration</span>
<span class="k">COPY</span><span class="w"> </span>nginx/default.conf<span class="w"> </span>/etc/nginx/conf.d/
</pre></div>
<p><a href="https://radeksprta.eu/posts/run-nikola-blog-in-docker/">Read moreā¦</a> (2 min remaining to read)</p></div>