Hey @Jignesh_01
I request you to create an issue on GitHub with all the required information.
We will take a look.
Thanks!
Hey @Jignesh_01
I request you to create an issue on GitHub with all the required information.
We will take a look.
Thanks!
fm looks good and promising, but somehow I couldn’t get it to do it’s thing, here’s a log of what’s happening / not happening:
peer@bv-dev:~$ service docker status
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2024-01-02 03:05:56 UTC; 2 days ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 775 (dockerd)
Tasks: 9
Memory: 96.2M
CPU: 38.932s
CGroup: /system.slice/docker.service
└─775 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Warning: some journal files were not opened due to insufficient permissions.
peer@bv-dev:~$ fm create example --apps erpnext:version-15 --apps hrms:version-15
❌ Docker daemon not running. Please start docker service.
peer@bv-dev:~$ fm --version
0.9.0
peer@bv-dev:~$ uname -a
Linux bv-dev 5.15.0-91-generic #101-Ubuntu SMP Tue Nov 14 13:30:08 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
peer@bv-dev:~$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
peer@bv-dev:~$ docker --version
Docker version 24.0.5, build 24.0.5-0ubuntu1~22.04.1
To summarize, the command errors out saying “ Docker daemon not running. Please start docker service.” although clearly the service is running.
Any idea how to investigate the reason of this erroneous error?
I made a mistake when installing ERPNext. I only promted: “fm create frappe.localhost”.
How can I delete and install new
I figured out myself. Just prompt
fm delete frappe.localhost
Install and start docker.
The quickest way to test this, is either test it in you machine, or use Digital Ocean to create Docker Droplet. It saves you a lot of time. Just for testing.
Is it also possible to install custom apps with this manager?
That’s exactly what I did, as can be seen in the log I posted.
But the test of fm showed that somehow it doesn’t realize a running docker is there. So in that respect the test is negative. But the tool looks attractive enough to be a desirable tool to use, if some day it will see the docker which is available to use, so that’s why I posted this kind of bug report.
Starting with other external virtual machines from a new supplier only adds more complication (more administration, more stuff to manage).
I’ve been around when the FUD spreading happened, which later gave rise to the famous Halloween documents, e.g.:
If you never heard about that, please read about these events and documents. (The take of ESR might give a better perspective than the WP article.)
These were no fun at all. A real danger to literally all of open source software!
Maybe that’s why I’m so disgusted each time I try to read the TOS of github (due diligence).
A nebulous legaleese like many such texts. What parts do you even need to read?
In comparison, the MIT license which Frappe uses is short and clear.
github’s TOS are also available as a github repo with over 15000 commits, who can ever follow that?
And their TOS state that they can change anything at any time even without saying it.
All this seems totally crazy to me, and also potentially like one gigantic trap.
And be reassured, I wouldn’t write anything different to begin with on github than I did here.
I also don’t understand why almost everybody flocks to github.
git was meant to be a distributed archive in order to combat the abuse operated by certain centralistic entities. Some people really tried to surreptitiously corrupt the source of Linux! So Linus reacted by writing the git tool. So there should be some resilience. But are we exercising it regularly, to be prepared for mishaps?
Is there a way to be sure we get the code which frappe engineers wrote?
Is there any code signing? Is there a frappe master repo?
Is there an organized vigilance, e.g. ways which check the uncorruptedness of what github delivers?
I’ve solved this problem. I don’t know about Linux or any other programming…
sudo groupadd docker
sudo usermod -aG docker peer
→ this peer is user name
sudo service docker start
→ I just do reboot.
devarshi_rtcamp
said simiar on issue
Same issue. I raised issue but while raising I was wondering if I need to install “docker-compose”
But I did not want just to try to install something without knowing what i am doing.
…-Series:~$ docker-compose versionor
docker compose version
or: command not found
Command ‘docker-compose’ not found, but can be installed with:
sudo snap install docker # version 20.10.24, or
sudo apt install docker-compose # version 1.29.2-1
See ‘snap info docker’ for additional versions.
Hi,
This looks great, but is there any intension on getting this to work on windows OS?
kind regards
Hemant
Please be aware of the consequences of using commands like these (after the note).
[Note: The following is curtesy of: https://www.reddit.com/r/docker/comments/1716gir/comment/k3psp2g/]
sudo groupadd docker
sudo usermod -aG docker me
newgrp docker
A standard installation of docker engine executes the docker daemon as root.
Using the above commands grants a user the right to control the docker daemon.
Now, what if this user decides to run a container and bind mount / to a directory inside that container? Opening a root shell inside the container would give full write access to the host filesystem.
As easy as:
docker run -it --rm -v /:/host alpine chroot /host
Never give docker access to anyone you wouldn’t give root access to.
This can be mitigated by running the Docker daemon as a non-root user, but this is not the default installation and requires additional configuration steps.
I got this error trying to create a site:
peer@bv-dev:~$ fm create he --frappe-branch version-15 --apps erpnext:version-15
✅ Halting other sites: Done
✅ Ports Check : Passed
⚠ Pulling Docker Images: Failed
❌ Starting Docker Containers: Failed
peer@bv-dev:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
peer@bv-dev:~/frappe/logs$ docker compose
docker: 'compose' is not a docker command.
See 'docker --help'
peer@bv-dev:~/frappe/logs$ apt search docker compose
Sortierung… Fertig
Volltextsuche… Fertig
docker-buildx/jammy-updates 0.12.1-0ubuntu1~22.04.1 amd64
Docker CLI plugin for extended build capabilities with BuildKit
docker-compose/jammy,now 1.29.2-1 all [installiert]
define and run multi-container Docker applications with YAML
docker-compose-v2/jammy-updates 2.24.6+ds1-0ubuntu1~22.04.1 amd64
tool for running multi-container applications on Docker
python3-ck/jammy 1.9.4-1.1 all
Python3 light-weight knowledge manager
resource-agents-extra/jammy-updates 1:4.7.0-1ubuntu7.2 amd64
Cluster Resource Agents
So it’s clear that docker compose is not installed.
But it kind of silently fails (see above), since the real reason of the failure is not stated. It would help the user to say that docker compose is missing and how it can be installed – and which version.
This is somewhat similar to the “docker doesn’t run” message when the user lacks permissions. That error message technically was a lie because the docker demon ran. So it somewhat confuses the user. A solution to this is known (see above, adding user to docker group), which is a choice the admin can make.
Here, a clear error message simply is absent. But I guess clearer message directing the admin to or even stating a solution can be integrated, which would be my wish.
My immediate question now is: There are two versions of docker compose to install.
docker-compose/jammy,now 1.29.2-1 all [installiert]
define and run multi-container Docker applications with YAML
docker-compose-v2/jammy-updates 2.24.6+ds1-0ubuntu1~22.04.1 amd64
tool for running multi-container applications on Docker
Which one to choose?
The install-script for debian frontendet OSs wants to install some “docker-compose-plugin” which doesn’t exist on ubuntu:
For your convenience, here are parts of the log messages which might help you see how the situation looks like from fm’s point of view:
[2024-06-27 06:36:31,327] INFO: ::::::::::::::::::::FM Invoked::::::::::::::::::::
[2024-06-27 06:36:31,327] INFO:
[2024-06-27 06:36:31,327] INFO: RUNNING COMMAND: logs he
[2024-06-27 06:36:31,327] INFO: --------------------
[2024-06-27 06:36:31,342] DEBUG: - -- -- -- -- -- -- -- -- -- -
[2024-06-27 06:36:31,342] DEBUG: DOCKER COMMAND: docker version --format json
[2024-06-27 06:36:31,361] DEBUG: {"Client":{"Version":"24.0.7","ApiVersion":"1.43","DefaultAPIVersion":"1.43","GitCommit":"24.0.7-0ubuntu2~22.04.1","GoVersion":"go1.21.1","Os":"linux","Arch":"amd64","BuildTime":"Wed Mar 13 20:23:54 2024","Context":"default"},"Server":{"Platform":{"Name":""},"Components":[{"Name":"Engine","Version":"24.0.7","Details":{"ApiVersion":"1.43","Arch":"amd64","BuildTime":"Wed Mar 13 20:23:54 2024","Experimental":"false","GitCommit":"24.0.7-0ubuntu2~22.04.1","GoVersion":"go1.21.1","KernelVersion":"5.15.0-113-generic","MinAPIVersion":"1.12","Os":"linux"}},{"Name":"containerd","Version":"1.7.12","Details":{"GitCommit":""}},{"Name":"runc","Version":"1.1.12-0ubuntu2~22.04.1","Details":{"GitCommit":""}},{"Name":"docker-init","Version":"0.19.0","Details":{"GitCommit":""}}],"Version":"24.0.7","ApiVersion":"1.43","MinAPIVersion":"1.12","GitCommit":"24.0.7-0ubuntu2~22.04.1","GoVersion":"go1.21.1","Os":"linux","Arch":"amd64","KernelVersion":"5.15.0-113-generic","BuildTime":"2024-03-13T20:23:54.000000000+00:00"}}
[2024-06-27 06:36:31,362] DEBUG: RETURN CODE: 0
[2024-06-27 06:36:31,362] DEBUG: - -- -- -- -- -- -- -- -- -- -
[2024-06-27 06:36:31,363] DEBUG: - -- -- -- -- -- -- -- -- -- -
[2024-06-27 06:36:31,363] DEBUG: DOCKER COMMAND: docker compose -f /home/peer/frappe/sites/he.localhost/docker-compose.yml ps --format json
[2024-06-27 06:36:31,377] DEBUG: unknown shorthand flag: 'f' in -f
[2024-06-27 06:36:31,377] DEBUG: See 'docker --help'.
[2024-06-27 06:36:31,377] DEBUG:
[2024-06-27 06:36:31,377] DEBUG: Usage: docker [OPTIONS] COMMAND
[2024-06-27 06:36:31,377] DEBUG:
[2024-06-27 06:36:31,377] DEBUG: A self-sufficient runtime for containers
[2024-06-27 06:36:31,377] DEBUG:
[2024-06-27 06:36:31,377] DEBUG: Common Commands:
[2024-06-27 06:36:31,377] DEBUG: run Create and run a new container from an image
[2024-06-27 06:36:31,377] DEBUG: exec Execute a command in a running container
[2024-06-27 06:36:31,377] DEBUG: ps List containers
[2024-06-27 06:36:31,377] DEBUG: build Build an image from a Dockerfile
[2024-06-27 06:36:31,377] DEBUG: pull Download an image from a registry
[2024-06-27 06:36:31,377] DEBUG: push Upload an image to a registry
[2024-06-27 06:36:31,377] DEBUG: images List images
[2024-06-27 06:36:31,377] DEBUG: login Log in to a registry
[2024-06-27 06:36:31,377] DEBUG: logout Log out from a registry
[2024-06-27 06:36:31,377] DEBUG: search Search Docker Hub for images
[2024-06-27 06:36:31,377] DEBUG: version Show the Docker version information
[2024-06-27 06:36:31,377] DEBUG: info Display system-wide information
[2024-06-27 06:36:31,377] DEBUG:
[2024-06-27 06:36:31,378] DEBUG: Management Commands:
[2024-06-27 06:36:31,378] DEBUG: builder Manage builds
[2024-06-27 06:36:31,378] DEBUG: container Manage containers
[2024-06-27 06:36:31,378] DEBUG: context Manage contexts
[2024-06-27 06:36:31,378] DEBUG: image Manage images
[2024-06-27 06:36:31,378] DEBUG: manifest Manage Docker image manifests and manifest lists
[2024-06-27 06:36:31,378] DEBUG: network Manage networks
[2024-06-27 06:36:31,378] DEBUG: plugin Manage plugins
[2024-06-27 06:36:31,378] DEBUG: system Manage Docker
[2024-06-27 06:36:31,378] DEBUG: trust Manage trust on Docker images
[2024-06-27 06:36:31,378] DEBUG: volume Manage volumes
[2024-06-27 06:36:31,378] DEBUG:
[2024-06-27 06:36:31,378] DEBUG: Swarm Commands:
[2024-06-27 06:36:31,378] DEBUG: swarm Manage Swarm
[2024-06-27 06:36:31,378] DEBUG:
[2024-06-27 06:36:31,378] DEBUG: Commands:
[2024-06-27 06:36:31,378] DEBUG: attach Attach local standard input, output, and error streams to a running container
[2024-06-27 06:36:31,378] DEBUG: commit Create a new image from a container's changes
[2024-06-27 06:36:31,378] DEBUG: cp Copy files/folders between a container and the local filesystem
[2024-06-27 06:36:31,379] DEBUG: create Create a new container
[2024-06-27 06:36:31,379] DEBUG: diff Inspect changes to files or directories on a container's filesystem
[2024-06-27 06:36:31,379] DEBUG: events Get real time events from the server
[2024-06-27 06:36:31,379] DEBUG: export Export a container's filesystem as a tar archive
[2024-06-27 06:36:31,379] DEBUG: history Show the history of an image
[2024-06-27 06:36:31,379] DEBUG: import Import the contents from a tarball to create a filesystem image
[2024-06-27 06:36:31,379] DEBUG: inspect Return low-level information on Docker objects
[2024-06-27 06:36:31,379] DEBUG: kill Kill one or more running containers
[2024-06-27 06:36:31,379] DEBUG: load Load an image from a tar archive or STDIN
[2024-06-27 06:36:31,379] DEBUG: logs Fetch the logs of a container
[2024-06-27 06:36:31,379] DEBUG: pause Pause all processes within one or more containers
[2024-06-27 06:36:31,379] DEBUG: port List port mappings or a specific mapping for the container
[2024-06-27 06:36:31,379] DEBUG: rename Rename a container
[2024-06-27 06:36:31,379] DEBUG: restart Restart one or more containers
[2024-06-27 06:36:31,380] DEBUG: rm Remove one or more containers
[2024-06-27 06:36:31,380] DEBUG: rmi Remove one or more images
[2024-06-27 06:36:31,380] DEBUG: save Save one or more images to a tar archive (streamed to STDOUT by default)
[2024-06-27 06:36:31,380] DEBUG: start Start one or more stopped containers
[2024-06-27 06:36:31,380] DEBUG: stats Display a live stream of container(s) resource usage statistics
[2024-06-27 06:36:31,380] DEBUG: stop Stop one or more running containers
[2024-06-27 06:36:31,380] DEBUG: tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
[2024-06-27 06:36:31,380] DEBUG: top Display the running processes of a container
[2024-06-27 06:36:31,380] DEBUG: unpause Unpause all processes within one or more containers
[2024-06-27 06:36:31,381] DEBUG: update Update configuration of one or more containers
[2024-06-27 06:36:31,381] DEBUG: wait Block until one or more containers stop, then print their exit codes
[2024-06-27 06:36:31,381] DEBUG:
[2024-06-27 06:36:31,381] DEBUG: Global Options:
[2024-06-27 06:36:31,381] DEBUG: --config string Location of client config files (default "/home/peer/.docker")
[2024-06-27 06:36:31,381] DEBUG: -c, --context string Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var and default context set with "docker context use")
[2024-06-27 06:36:31,381] DEBUG: -D, --debug Enable debug mode
[2024-06-27 06:36:31,381] DEBUG: -H, --host list Daemon socket to connect to
[2024-06-27 06:36:31,381] DEBUG: -l, --log-level string Set the logging level ("debug", "info", "warn", "error", "fatal") (default "info")
[2024-06-27 06:36:31,381] DEBUG: --tls Use TLS; implied by --tlsverify
[2024-06-27 06:36:31,381] DEBUG: --tlscacert string Trust certs signed only by this CA (default "/home/peer/.docker/ca.pem")
[2024-06-27 06:36:31,382] DEBUG: --tlscert string Path to TLS certificate file (default "/home/peer/.docker/cert.pem")
[2024-06-27 06:36:31,382] DEBUG: --tlskey string Path to TLS key file (default "/home/peer/.docker/key.pem")
[2024-06-27 06:36:31,382] DEBUG: --tlsverify Use TLS and verify the remote
[2024-06-27 06:36:31,382] DEBUG: -v, --version Print version information and quit
[2024-06-27 06:36:31,382] DEBUG:
[2024-06-27 06:36:31,382] DEBUG: Run 'docker COMMAND --help' for more information on a command.
[2024-06-27 06:36:31,382] DEBUG:
[2024-06-27 06:36:31,382] DEBUG: For more help on how to use Docker, head to https://docs.docker.com/go/guides/
[2024-06-27 06:36:31,382] DEBUG:
[2024-06-27 06:36:31,383] DEBUG: RETURN CODE: 125
[2024-06-27 06:36:31,383] DEBUG: - -- -- -- -- -- -- -- -- -- -
Anyway, it’s a very nice tool made with love, and that’s great.
Thank you so much for your detailed explanation. I completely understand your frustration with the lack of clear error messages. It’s crucial for users to receive accurate and actionable information when something goes wrong. We will work on providing clearer error messages.
Which fm version are you on ? Seems like you are using old version.
Caution
If you delete the
~/frappe
directory, your data will be lost. Please ensure you take a backup before deleting it.
I will recommend deleting the ~/frappe directory and then updating to the latest version using pip install -U frappe-manager.
Regarding installation of docker engine and docker compose. Please follow the steps outlined here → Install Docker Engine on Ubuntu | Docker Docs
Can we you custom docker image with fm, say:
hsrai/erpnext_pack:v1.0.0
in place of
ghcr.io/rtcamp/frappe-manager-frappe:v0.15.0
Could not find anything realted this at: Home · rtCamp/Frappe-Manager Wiki · GitHub
but I am sure there must be a way.
If there must be any basic requirements for custom image, then that may also be conveyed.
You can do something like: Full custom docker compose setup · Issue #1699 · EasyEngine/easyengine · GitHub
And then docker-compose -f a.yml -f b.yml
should work fine.
Will it not be different from fm?