Our website is made possible by displaying online advertisements to our visitors. Please consider supporting us by disabling your ad blocker.

Continuous Integration With GitLab CI And Docker Using A Raspberry Pi

I know I’ve mentioned this before, but I’ve recently started to get serious about my content production and deployment approach on The Polyglot Developer. My goal is to be able to write my tutorials in Markdown, push to GitLab, and have it automatically deployed as a Docker container on my production server. Being able to automate things and take advantage of Docker will definitely improve my productivity in the long term.

So I’ve been playing around with tools on the subject, more specifically GitLab, because that is what I’m using to save a history of the blog. GitLab is a source code repository, but also a whole lot more given its ability to do continuous integration, continuous deployment, and work with Docker directly.

We’re going to take a look at installing GitLab and Docker on a Raspberry Pi, then configuring a GitLab CI Runner to take control of our continuous integration process every time we push some code. While it might sound easy, there are some certain things that aren’t so obvious in the setup and configuration.

Read More

Serve Your Web Applications With Minimal Effort Using Caddy

I’ve been in the web game for quite some time and have my fair share of web server software. I’ve used Microsoft’s Internet Information Services (IIS), Apache httpd, as well as NGINX, and while they all thrive in their own ways, they’ve been overkill for most of my use cases. This is where Caddy comes in, a lightweight alternative to these seasoned, but often heavy web servers.

We’re going to see how to use Caddy and learn why it is so powerful while using minimal effort on a developer operations side.

Read More

Mapping Volumes Or Passing Environment Variables To Containerized Docker Applications

If you’ve ever worked with Docker containers you’ve probably been exposed to them being stateless, meaning when a container is destroyed, all record of it is lost including any files it might have created. Not great if you’re working with say a database, correct? However, let’s look at this from a different angle. Let’s say you are deploying a web application that requires some configuration. Depending on how you’ve developed it, the configuration could be controlled via a file or via environment variables. How do you accommodate this with Docker container deployments when you don’t want these configurations baked into the image?

We’re going to see how to work with volume mapping between container and host machines as well as passing environment variables at container deployment with Docker.

Read More

Containerization with Docker by Example Released

I am pleased to announce that Containerization with Docker by Example, a course I’ve been working on for a while, has been published to the popular Udemy education network.

This course, is the fifth course that I’ve released and the first that hasn’t been on the topic of mobile application development.

Read More

Mine Bitcoin And Other Cryptocurrency Coins With A CPU Miner And Docker

So you’ve been doing a lot of research around the blockchain and the various cryptocurrencies. Don’t worry, I’ve been doing a lot of the same research. There is so much in the news and on social media around this subject, it would be a good idea to educate yourself.

When it comes to cryptocurrencies, there are a lot of people trying to mine it rather than buy it. Depending on the type of currency, it could be near impossible to mine or very easy. Take Bitcoin for example. Bitcoin is one of the most difficult coins to mine, while others such as DigiByte are much easier. That’s not to say the easier coins won’t become more difficult in the future.

So how do you get started with mining?

I use a Mac. If you’re a Mac owner and you try to find a mining tool online, you’re going to struggle because most are for Windows or Linux. We’re going to see how to leverage Docker to mine via a Linux container on any platform.

Read More

Deploying Native Node.js Dependencies On AWS Lambda

I was recently working on a Functions as a Service (FaaS) project using AWS Lambda and Node.js. However, I was running into an issue where my package dependencies found in my node_modules directory were for the wrong platform once deployed to Lambda. This is not the first time I experienced a problem like this. I knew the issue straight away because I encountered the same thing when trying to use a node_modules directory generated on Mac from a Windows computer.

When uploading a package developed with Node.js to AWS Lambda, the package.json file is not considered. Instead you are uploading a package that contains the node_modules directory and all dependencies. So how do you develop for AWS Lambda from Mac and Windows, but have it work once deployed?

We’re going to see how to use Docker to get our Node.js FaaS project dependencies designed for Amazon’s flavor of Linux.

Read More

Containerizing A Node.js With Express Image Processing RESTful API Using Docker

Docker is a great way to package and deploy web applications. Applications that have been containerized can easily be created, destroyed, or even moved between servers, as long as the servers are using the Docker runtime.

Not too long ago I wrote about creating a RESTful API that could process images and generate Android compliant launcher icons. This article was titled, Create an Android Launcher Icon Generator RESTful API with Node.js, and Jimp and it was powered by Express Framework. The application could be served on any properly configured server with Node.js. The catch here is that server configuration is never easy or quick.

We’re going to see how to package our web application into a container using Docker.

Read More