Where to start
Linux distribution containers
Alpine Linux
Debian
Basic containers
Basic container
Python 3
NodeJS
LAMP (Apache, SQLite3, PHP)
Net tools
Ready-to-use containers
icom Data Suite (iDS)
AnyViz Cloud Adapter
Node-RED
Software Development Kit (SDK)
Scripts to create your own container
Containers for INSYS industrial routers
(or other armv7 or amd64 based machines)
INSYS industrial routers can run LXC containers, which can add a lot of functionality!
Send your questions, wishes, bug reports or ideas to info@m3-container.net
Where to start
Use this poster (pdf en, de) to find your personal entry level to containers. There are at least four entry levels:
Ready-to-use containers
Products like our icom Data Suite (iDS), products from partners like AnyViz or community based setups like Node-RED allow configuring instead of programming additional functionality.
Well known Linux distributions
Containers like Alpine Linux or Debian come with their own package managers (apk, apt).
Basic containers
These very small containers come with script languages like Python, NodeJS, ash, PHP.
Develop your own container
This is the developers choice: Install the SDK (as Docker or LXC container), clone the prepared build scripts and create containers from scratch. This is how the basic containers are created.
Alpine Linux
Download: Alpine.tar
An Alpine Linux demo container with only an SSH server for login.
Alpine Linux uses musl as standard C library instead of glibc, which most of the time leads to smaller binaries. The SDK doesn't support musl, so it's not possible to use it to cross compile applications for Alpine Linux.
Alpine Linux does have a huge catalogue of precompiled applications and libraries. Use the included package managing tool "apk" for updating, upgrading and installing additional packages, so this container fits when you want to run standard software, e.g. Node-RED or a minetest server.
Debian
Download: Debian.tar
A Debian demo container with only an SSH server for login.
This container might be the easiest way to add functionality due to the huge popularity of Debian. Despite being perfect for quick tests of PoC (Proof of Concept) this comes at the cost of a bit container size, so it isn't recommended to use such containers in a production environment.
Use the included package managing tool "apt" for updating, upgrading and installing additional packages. Before downloading such a container from the device, it's recommended to delete as many files as possible, e.g. all the cached downloaded packages and all the repository information. This data will be outdated anyway and can be replaced with a fresh apt-get upgrade.
Basic container
Download: container_default.tar
A minimal demo container that brings a SSH server (for login). This container is meant as an example or template for your own containers you want to create with the SDK and the provided scripts. Also use this container for very simple applications, that can be implemented in ash, a minimal shell interpreter included in busybox.
Python 3
Download: container_python3.tar
A minimal demo container with Python 3 in it. There are already a few modules installed (e.g. requests, certifi, urllib). Additional packages can be installed using the included pip.
LAMP (Linux, Apache, SQLite3, PHP)
Download: container_LAMP.tar
A demo container with a classic LAMP stack consisting of Linux, Apache web server, SQLite3 data base and PHP. Additionally it uses runit to start/stop processes.
Net tools
Download: container_net-tools.tar
A demo container with a few net tools like tcpdump, nmap, nping, iperf, mosquitto (MQTT broker), httping, curl, iptables. It also contains tools to establish your own VPN connections like OpenVPN, wg (wireguard) or stunnel. Use this container for debugging purposes! You can create a jump host in a remote network, bridge the nets to it and debug from there.
icom Data Suite (iDS)
Download: iDS download site
Product page: https://www.insys-icom.com/
An IoT software, used for alarming and controlling your data with multiple industrial protocols.
AnyViz Cloud Adapter
Download: AnyViz Cloud Adapter (Container)
Documentation: Installation instructions
Product page: https://www.anyviz.io
AnyViz is probably the easiest way to monitor, operate and analyze machine and plant controls remotely.
With the container OPC-UA, Modbus, Siemens, Beckhoff, EtherNet/IP, BACnet and M-Bus devices can be connected to the cloud.
Node-RED
Download: Node-RED.tar
This demo container is based on Alpine Linux. Add more modules and connectors to it by using npm. Use this guide to install packages with npm, that need a compiler to get installed.
Software Development Kit (SDK)
Download: M3_SDK_LXC.tar.gz
This SDK is just a suggestion, you can use whatever toolchain you prefer!
It contains tools to cross compile code for the armv7 architecture. It's avalable as LXC or Docker container. It is meant to be used in combination with a bunch of scripts, so all the steps to create a container are completely automated.
This SDK comes with no IDE at all, it's meant to be used
- via command line interface (CLI) or
- integrated in your favourite IDE or editor or
- by your CI/CD pipeline
The idea is, that you continue to use all your existing tools on your PC like editors to create the content and applications. The tools within the SDK then are used to do all the necessary cross compiling and packaging, so you get a container.
Here are the first steps to create your own container.
The SDK is a Gentoo Linux without any graphical UI (headless). You can update it and install more packages with the typical Gentoo tools (emerge). In case you have to use a none Linux system, you could create a virtual machine image on your own by downloading the LXC version of the SDK. You would have to add a bootloader and a Linux kernel.
Scripts to create your own container
Having a container is nice, being able to reproduce its build in an automated way is better!
This git repository with scripts can be the foundation of your own container projects. Mount the clone of this repo into your installed SDK and build your first basic container. These scripts will download, check, configue, make, make install and package all necessary software. Use the existing scripts as a template for your own containers.
Hint! Use separate clones of the repos for separate container projects! This allows you to update different containers at different speed. Also this scripts will change over time, when there are updates or new basic containers.