Comment on page
Docker
Learn how to install Mycroft for Docker either from a Docker Hub install, or by building the image. Many thanks to Brian Hopkins (@btotharye) for this documentation.
Mycroft is available for
Docker
. You have two options for a Docker
installation:- Build Image from source
- Pull Image from Docker Hub
This documentation assumes the following:
- You have already installed
Docker
on your machine based on the operating system you are running.
The Mycroft for Docker image is updated on dockerhub and you can install it by running the command below:
docker pull mycroftai/docker-mycroft
Then follow the instructions below for running Mycroft for Docker.
it pull this repository.
git clone https://github.com/MycroftAI/docker-mycroft.git
Build the
Docker
image in the directory that you have checked out.docker build -t mycroft .
Follow the instructions for running Mycroft for Docker below to continue.
To prevent having to register your instance with home.mycroft.ai every time the container is started, and to have persistent data, you can map a local directory into the container. Just replace the
directory_on_local_machine
with the path you want the container mapped to on your local machine (eg. /home/user/mycroft
).Sounds can be played in the
Docker
container using pulseaudio
, without modifying any config filesRun the following to start up Mycroft for Docker:
_NOTE: You don't need the -e PULSE_SERVER or any of the other pulse related variables if you only want to use text via a websocket to mycroft for example using this container.
docker run -d \
-v directory_on_local_machine:/root/.mycroft \
--device /dev/snd \
-e PULSE_SERVER=unix:${XDG_RUNTIME_DIR}/pulse/native \
-v ${XDG_RUNTIME_DIR}/pulse/native:${XDG_RUNTIME_DIR}/pulse/native \
-v ~/.config/pulse/cookie:/root/.config/pulse/cookie \
-p 8181:8181 \
--name mycroft mycroftai/docker-mycroft
Confirm via
docker ps
that your container is up and serving port 8181:docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
692219e23bf2 mycroft "/mycroft/ai/mycro..." 3 seconds ago Up 1 second 0.0.0.0:8181->8181/tcp mycroft
You should now have a running instance of Mycroft for Docker that you can interact with via the command line.
After the container has been started you can watch the logs and look for the line that says "Pairing Code" and use this to pair at https://home.mycroft.ai.
You can view the logs with:
docker logs -f mycroft
At any time you can watch the logs simply by running the bellow command:
docker logs -f mycroft
You can exit out of this
docker log
command by hitting Ctrl + C. The --follow
turns it into a real tail
instead of a cat
of the log.You can interact with the CLI of the container by running the following command. This will connect you to the running container via
bash
:docker exec -it mycroft /bin/bash
Once in the container you can do
./start-mycroft.sh cli
to get a interactive CLI to interact with Mycroft for Docker if needed.You can type Ctrl + C to exit the cli.
You can install Skills into the container by running the following:
docker exec -it mycroft /opt/mycroft/msm/msm install github_url
So to install the Hello World Skill:
docker exec -it mycroft /opt/mycroft/msm/msm install https://github.com/MycroftAI/skill-hello-world
You can also uninstall a Skill using MSM with:
docker exec -it mycroft /opt/mycroft/msm/msm remove skill-hello-world
There have been reports that
mimic
may not be properly added to the PATH. Restarting Mycroft within the Docker container can resolve this.Last modified 11mo ago