- podman
- podman-compose
- docker-compose
Podman (the POD MANager) is a tool for managing containers and images, volumes mounted into those containers, and pods made from groups of containers. It is available on the official repositories of many Linux distributions.
- Clone this repository and change the current directory to the downloaded folder
git clone https://github.com/frappe/frappe_docker cd frappe_docker
- Create
apps.json
file with custom apps listed in itCheck the syntax of the file using[ { "url": "https://github.com/frappe/erpnext", "branch": "version-15" }, { "url": "https://github.com/frappe/hrms", "branch": "version-15" }, { "url": "https://github.com/frappe/helpdesk", "branch": "main" } ]
jq empty apps.json
cmd export APPS_JSON_BASE64=$(base64 -w 0 apps.json)
- Building the custom image using podman
podman build \
--build-arg=FRAPPE_PATH=https://github.com/frappe/frappe \
--build-arg=FRAPPE_BRANCH=version-15 \
--build-arg=APPS_JSON_BASE64=$APPS_JSON_BASE64 \
--tag=custom:15 \
--file=images/layered/Containerfile .
- Make sure to use the same tag when you export a variable on the next step
- Using the image
- Export environment variables with image name, tag and pull_policy
export CUSTOM_IMAGE=custom export CUSTOM_TAG=15 export PULL_POLICY=never
- Configuration of parameters used when starting the containers
- create
.env
file copying from example.env (Read more on setting up environment variables here
- create
- Creating a compose file
-
podman compose -f compose.yaml \ -f overrides/compose.mariadb.yaml \ -f overrides/compose.redis.yaml \ -f overrides/compose.noproxy.yaml \ config > ./docker-compose.yml
- podman compose is just a wrapper, it uses docker-compose if it is available or podman-compose if not. podman-compose have an issue reading .env files (Issue) and might create an issue when running the containers.
- Creating pod and starting the containers
podman-compose --in-pod=1 --project-name erpnext -f ./docker-compose.yml up -d
- You can create sites from the backend container
podman exec -ti erpnext_backend_1 /bin/bash
bench new-site myerp.net --mariadb-root-password 123456 --admin-password 123123
bench --site myerp.net install-app erpnext
-
If there is a network issue while building the image, you need to remove caches and restart again
podman system reset
sudo rm -rf ~/.local/share/containers/ /var/lib/container ~/.caches/containers
-
Database issue when restarting the container
- Execute the following commands from backend container
mysql -uroot -padmin -hdb
(Note: put your db password in place of admin).SELECT User, Host FROM mysql.user;
- Change the IP address to %, e.g.
RENAME USER '_5e5899d8398b5f7b'@'172.18.0.7' TO '_5e5899d8398b5f7b'@'%'