EasyEngine container image, https://github.com/dinhngocdung/easyengine-docker
2.5K
# Ready to run easyengine with alias ee
mkdir -p /opt/easyengine && \
curl -o /opt/easyengine/docker-compose.yml https://raw.githubusercontent.com/dinhngocdung/easyengine-docker/master/docker-compose.yml && \
echo -e "\n\nalias ee='sudo docker compose -f /opt/easyengine/docker-compose.yml run --rm easyengine'" >> ~/.bashrc && source ~/.bashrc
# Run ee-containr, and use easyeinge command
ee
The EasyEngine container, allowing you to deploy and use EasyEngine on any Linux distribution, not just the officially supported Debian/Ubuntu.
It works well with systems like:
Docker must be installed and running
Check if Docker is installed:
docker version
tmux, rsyncRun the following command to launch the EasyEngine container:
docker run -it --rm --privileged \
-v /var/run/docker.sock:/var/run/docker.sock:z \
-v /var/lib/docker/volumes:/var/lib/docker/volumes \
-v /opt/easyengine:/opt/easyengine \
-v /etc/localtime:/etc/localtime:ro \
-v /opt/easyengine/.ssh-key:/root/.ssh \
--network host \
--name easyengine\
dinhngocdung/easyengine:latest
| Parameter | Description |
|---|---|
--privileged | Allows the container to interact with Docker on the host |
--rm | Automatically removes the container when it exits |
-v /var/run/docker.sock | Grants access to Docker daemon from within the container |
-v /opt/easyengine | Stores EasyEngine configs and website data persistently on the host |
--network host | Ensures services like web/db run properly with host networking |
-v /etc/localtime | Sync time of host and container |
Once inside the container (easyengine), you can use EasyEngine commands as usual.
Example Commands:
ee site create example.com --type=wp
ee site list
ee site disable example.com
ee site delete example.com
To exit the container, type:
exit
This will return you to the host OS and the container will be automatically removed.
However, all your EasyEngine data and websites remain intact on the host under /opt/easyengine.
Whenever you need to use EasyEngine, just rerun the docker run debloy command to launch a new container environment instantly.
First, download the docker-compose.yml configuration file to /opt/easyengine :
mkdir -p /opt/easyengine && \
curl -o /opt/easyengine/docker-compose.yml https://raw.githubusercontent.com/dinhngocdung/easyengine-docker/master/docker-compose.yml
To run the container and start using EasyEngine
cd /opt/easyengine
sudo docker compose run --rm easyengine
ee AliasFor more convenience, you can create an ee alias. This alias helps you run the EasyEngine Container without typing the long command every time.
1. Add the alias to your .bashrc file:
If use docker compose:
echo -e "\n\nalias ee='sudo docker compose -f /opt/easyengine/docker-compose.yml run --rm easyengine'" >> "$HOME/.bashrc" && source "$HOME/.bashrc"
If use docker run:
echo "alias ee='sudo docker run -it --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock:z -v /var/lib/docker/volumes:/var/lib/docker/volumes -v /opt/easyengine:/opt/easyengine -v /etc/localtime:/etc/localtime:ro -v /opt/easyengine/.ssh-key:/root/.ssh --network host --name easyengine dinhngocdung/easyengine:latest'" >> "$HOME/.bashrc" && source "$HOME/.bashrc"
2. To enter the container and interact:
After creating the alias, you can use ee like a normal command:
# Star run easyengine-docker
ee
# You'll again see the prompt `[easyengine: /opt/easyengine]$`.
# you can run EasyEngine commands such as:
ee site list
ee site create sample.com
ee cron list --all
# Type `exit` when you want to quit.
exit
3. To run a single ee command:
If you just want to run a command and then exit, EasyEngine will automatically open the container, run the command, and remove the container. For example:
ee ee site list
ee ee site clean sample.com
Dockerfile for building the dinhngocdung/easyengine:latest imageSync/Clone is designed for interaction between EasyEngine installations directly on the host. For these commands to work with easyengine, you need the following:
Create ssh-key for connect remote easyengine
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519
ssh-copy-id -i ~/.ssh/id_ed25519.pub [email protected]
If remote easyeinge on remote host, it normaly. And if user root locked, also easyengine clone reque connect by root, you must forward YOUR-USER to root:
vi /home/YOUR-USER/.ssh/authorized_keys
Add command=... befor ssh-...
command="if [ -n \"$SSH_ORIGINAL_COMMAND\" ]; then sudo -i bash -c \"$SSH_ORIGINAL_COMMAND\"; else sudo -i; fi" ssh-....
If remote easyengine also on container, you need foward ssh into easyengine
/usr/local/bin/ssh_to_ee_container.sh to forward ssh and rsync commands:
#!/bin/bash
# Name of the Docker container you want to connect to
CONTAINER_NAME="easyengine"
# Check if a command was passed via SSH_ORIGINAL_COMMAND
if [ -n "$SSH_ORIGINAL_COMMAND" ]; then
docker exec -i "$CONTAINER_NAME" /bin/bash -c "$SSH_ORIGINAL_COMMAND"
else
if [ -n "$SSH_TTY" ]; then
docker exec -it "$CONTAINER_NAME" /bin/bash
else
docker exec -i "$CONTAINER_NAME" /bin/bash
fi
fi
~/.ssh/authorized_keys on the remote host to run ssh_to_ee_container.sh when access by ssh-key:
vi ~/.ssh/authorized_keys
command="/usr/local/bin/ssh_to_ee_container.sh" beford ssh-...
command="/usr/local/bin/ssh_to_ee_container.sh" ssh-ed25519 AAAAB3NzaC1yc2EAAAADAQABAAABAQ... your_key_comment_or_email
Content type
Image
Digest
sha256:315fe2a4b…
Size
231.8 MB
Last updated
3 months ago
docker pull dinhngocdung/easyengine