Docker 🐳 VM or a remote fleet Balena/Kubernetes/etc.
A typical install script could look like the following script .circleci/config.yml
It will eventually run the container as the startup script succeeds.
Everyting is ready to launch a container in real cluster environment. The process is described further.
We have provided 3 ways to make use of this project. It supports:
- Docker CE
docker-compose up may be enough to run and test the configuration
- Balena Cloud
./deploy.sh armhf --balena
- Kubernetes
./kompose.sh up may be run if your shell run on a valid working cluster environment
Please read README.md file to get more information on how to setup the cluster and handle common issues.
- Broadband Internet access to the Worldwide Web, to download the packages and container images dependencies from the remote Docker registries.
- The Docker CE described with the Dockerfile. >:whale: Get Started application.
- NodeJS command line package manager interface, npmjs with yarn package manager
- A BASH Terminal (Linux or Darwin OS are known to work)
Once everything is installed, please reboot your system.
Very few variables are defined by default. It provides host-container-server communication. Host Firewall and file attributes set to the host platform values.
# Open https://${SERVER_NAME}/etc/getHashPassword.php or type $ ./configure.sh -p password -s hash
# Get new staff credentials (url=/admin/index.php)
- GET_HASH_PASSWORD: (let's encrypt it from above)
# Database name
- MYSQL_DATABASE: aria_db
# Persistent ROOT connection credentials
- MYSQL_HOST: localhost
- MYSQL_ROOT_PASSWORD: mariadb
# CakePHP secrets
- CAKEPHP_SECRET_TOKEN:<secret-token>
- CAKEPHP_SECRET_SALT:<secret-salt>
- CAKEPHP_SECURITY_CIPHER_SEED:<cipher-seed>
# Deployed Migration option
- MIGRATE_OPTION: -v
# The following values are options to change if needed
# Binding a mysql container to a specific (public) IP address or all (0.0.0.0)
- MYSQL_BIND_ADDRESS: 0.0.0.0
- MYSQL_TCP_PORT: 3306
# Persistent USER connection credentials
- MYSQL_USER: maria
- MYSQL_PASSWORD: maria-abc
# Run as a different user-group space ($ id -g $USER)
- PGID: 0
# Run as a different user space ($ id -u $USER)
- PUID: 0
# Apache 2 httpd, or DNS CNAME of the host machine ($ hostname)
- SERVER_NAME: www-machine.local
# MariaDB Timezone
- TZ: Europe/Paris
Requirements: A Docker or any compatible must be installed and running.
Argument value --docker set up a local docker test configuration.
./configure.sh --docker --mig-database -u -i
./test-cake.sh --docker
Developer build continuous integration
The current project is a full PHP (CakePHP) with MySQL (MariaDB) container for Docker-CE, or even a Dockerfile compatible container interface. We choose Circle CI because it's able to achieve full remote tests with docker 🐳 before we deploy to a devices swarm. It actually can run on self hosted runners and remote runnners from .circle/config.yml configuration file presets.
A. Fork the master repository (development branch).
yarn
B. Rebuild image registry from deployment folder if you make change to the primary. E.g. change of Linux distribution. Edit the file deployment/images/primary/Dockerfile.template to your needs and perform a build from the a Docker client machine.
If you make use of Balena OS base image list repository you can use blocks to cross build for ARM # [ "cross-build-start" ] # [ "cross-build-end" ] command lines in the Dockerfile.template files:
./deploy.sh aarch64 --local --build-deps
C. With the BalenaCloud and BalenaHub service, you may see the message on build logs: [Error] Error: The command 'cross-build-start' returned a non-zero code: 1: Run a push, even if it's unsuccessful:
./deploy.sh aarch64 --balena --push
You have now disabled the cross-build environment. Browse up to your github master fork-repository. Click on Deploy with Balena in the README, choose a fleet and deploy it!
Copyright 2016-2025 www.b23prodtm.info
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.