Docker Compose Curl
Personally, I like to use Docker containers on my Raspberry Pis as they come with a great layer of abstraction and portability. Here is how to get your Raspberry Pi ready for Docker and Docker-Compose.
1. Setup your Raspberry Pi with Raspbian, Wifi and SSH access
Oct 18, 2016 When trying to launch a built container with docker-compose up I'm getting an error. ERROR: for app Cannot start service app: invalid header field value 'oci runtime error: containerlinux.go:247: starting container process caused 'exec: 'script/docker-entrypoint.sh ': stat script/docker-entrypoint.sh: no such file or directory ' ' ERROR: compose.cli.main.main: Encountered errors while. When trying to launch a built container with docker-compose up I'm getting an error. ERROR: for app Cannot start service app: invalid header field value 'oci runtime error: containerlinux.go:247: starting container process caused 'exec: 'script/docker-entrypoint.sh ': stat script/docker-entrypoint.sh: no such file or directory ' ' ERROR: compose.cli.main.main: Encountered errors while.
Docker Compose Curling
If your Raspberry Pi is already set up, you can skip this step and continue to step 2.
The most straight forward way to install Raspbian on your Raspberry Pi is through the official Raspberry Pi Imager. It comes with all the tools needed to prepare and flash an SD card with the Raspbian version you want to install. For this tutorial, I am assuming, that you are using the smallest Raspbian 'Lite' version.
To ensure, that SSH is enabled on the first start of your Raspberry Pi, we need to add an additional empty file called ssh
to the SD card's root directory after is has been flashed with the image.
This is especially useful, if you are running your Raspberry Pi in headless mode with no screen or keyboard attached.
If you want to connect the Raspberry Pi to a Wifi network, it might be useful to also provide the network details for the first startup. For this, define a wpa_supplicant.conf
file in the same root folder with the following content. Make sure, it uses the line feed (LF) newline character.
If you are unsure about your 2 letter ISO 3166-1 country codes, you can look it up here.
After booting up your device, you can connect to it via SSH by using its IP address, that you will likely get from your router's web interface.
The default username is pi
and the standard password is raspberry
.
It's highly recommended to change the password on the first connection. You can do this and configure many other useful things in the handy Raspberry Pi Config tool.
2. Install Docker
The connection is set up, it's time to install Docker. Fortunately, Docker provides a handy install script for that.
After the script has finished, add the permissions to the current user to run Docker commands.
Reboot the Raspberry Pi to let the changes take effect.
3. Install Docker-Compose
Docker-Compose usually gets installed using pip3. For that, we need to have python3 and pip3 installed. If you don't have it installed, you can run the following commands.
Docker Compose Curl
Once python3 and pip3 are installed, we can install Docker-Compose using the following command.
4. Enable the Docker system service to start your containers on boot
This is a very nice and important addition. With the following command you can configure your Raspberry Pi to automatically run the Docker system service, whenever it boots up.
With this in place, containers with a restart policy set to always
or unless-stopped
will be re-started automatically after a reboot.
Docker Compose Curl Extensions
5. A sample Docker Compose file
This section shows a quick sample of a Docker-Compose file, which starts three containers that once started will automatically come up, if the Raspberry Pi get fully power cycled. To learn more about the sample project I used here, visit my Docker Speed Test project on GitHub.
To start the containers using Docker-Compose, run the following command.
☝️ Advertisement Block: I will buy myself a pizza every time I make enough money with these ads to do so. So please feed a hungry developer and consider disabling your Ad Blocker.