mycroftai / docker-mycroft Goto Github PK
View Code? Open in Web Editor NEWMycroft Development Environment inside Docker!
Mycroft Development Environment inside Docker!
Hi,
Can this mycroft image be used on a Raspberry pi? I am assuming it wont work as pi has arm32 architecture.
Got this error today:
ConnectionRefusedError: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/mycroft/mycroft/messagebus/client/client.py", line 84, in on_error
self.emitter.emit('error', error)
File "/opt/mycroft/.venv/lib/python3.6/site-packages/pyee/__init__.py", line 178, in emit
raise args[0]
File "/opt/mycroft/.venv/lib/python3.6/site-packages/websocket/_app.py", line 254, in run_forever
proxy_type=proxy_type)
File "/opt/mycroft/.venv/lib/python3.6/site-packages/websocket/_core.py", line 220, in connect
options.pop('socket', None))
File "/opt/mycroft/.venv/lib/python3.6/site-packages/websocket/_http.py", line 120, in connect
sock = _open_socket(addrinfo_list, options.sockopt, options.timeout)
File "/opt/mycroft/.venv/lib/python3.6/site-packages/websocket/_http.py", line 190, in _open_socket
raise err
File "/opt/mycroft/.venv/lib/python3.6/site-packages/websocket/_http.py", line 170, in _open_socket
sock.connect(address)
ConnectionRefusedError: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/mycroft/mycroft/messagebus/client/client.py", line 84, in on_error
self.emitter.emit('error', error)
File "/opt/mycroft/.venv/lib/python3.6/site-packages/pyee/__init__.py", line 178, in emit
raise args[0]
File "/opt/mycroft/.venv/lib/python3.6/site-packages/websocket/_app.py", line 254, in run_forever
proxy_type=proxy_type)
File "/opt/mycroft/.venv/lib/python3.6/site-packages/websocket/_core.py", line 220, in connect
options.pop('socket', None))
File "/opt/mycroft/.venv/lib/python3.6/site-packages/websocket/_http.py", line 120, in connect
sock = _open_socket(addrinfo_list, options.sockopt, options.timeout)
File "/opt/mycroft/.venv/lib/python3.6/site-packages/websocket/_http.py", line 190, in _open_socket
raise err
File "/opt/mycroft/.venv/lib/python3.6/site-packages/websocket/_http.py", line 170, in _open_socket
sock.connect(address)
ConnectionRefusedError: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/mycroft/.venv/lib/python3.6/site-packages/websocket/_app.py", line 254, in run_forever
proxy_type=proxy_type)
File "/opt/mycroft/.venv/lib/python3.6/site-packages/websocket/_core.py", line 220, in connect
options.pop('socket', None))
File "/opt/mycroft/.venv/lib/python3.6/site-packages/websocket/_http.py", line 120, in connect
sock = _open_socket(addrinfo_list, options.sockopt, options.timeout)
File "/opt/mycroft/.venv/lib/python3.6/site-packages/websocket/_http.py", line 190, in _open_socket
raise err
File "/opt/mycroft/.venv/lib/python3.6/site-packages/websocket/_http.py", line 170, in _open_socket
sock.connect(address)
ConnectionRefusedError: [Errno 111] Connection refused
2020-06-22 21:32:19.905 | ERROR | 27 | mycroft.messagebus.client.client:on_error:88 | Exception closing websocket: ConnectionRefusedError(111, 'Connection refused')
2020-06-22 21:32:19.909 | WARNING | 27 | mycroft.messagebus.client.client:on_error:91 | Message Bus Client will reconnect in 60 seconds.
Probably related issues #37
The sphinx repo's call configure
from the autogen.sh
script, so the configure
line is probably superfluous.
Haven't tested without it yet, but when I followed the Dockerfile
steps manually I didn't need to include it.
Describe the bug
I run the docker on my machine, when Inavigate to machine_ip:8181 it shows this error:
Traceback (most recent call last):
File "/opt/mycroft/.venv/lib/python3.6/site-packages/tornado/web.py", line 1681, in _execute
result = self.prepare()
File "/opt/mycroft/.venv/lib/python3.6/site-packages/tornado/web.py", line 2430, in prepare
raise HTTPError(self._status_code)
tornado.web.HTTPError: HTTP 404: Not Found
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Itexpectedto see the web interface of mycraft
Log files
If possible, add log files from /var/log/mycroft/
to help explain your problem.
You may also include screenshots, however screenshots of log files are often difficult to read and parse.
If you are running Mycroft, the Support Skill helps to automate gathering this information. Simply say "Create a support ticket" and the Skill will put together a support package and email it to you.
Environment (please complete the following information):
Additional context
Add any other context about the problem here.
Please think carefully about whether you have modified anything in Mycroft's code or configuration files. If so, can you reproduce this on a clean installation of Mycroft? Many "bugs" turn out to be non-standard configuration errors.
Fresh docker image following the install docker at link below, so I would expect it to work out of the box. Using docker exec -it mycroft /bin/bash
to start. Then mycroft-start audiotest
and I get the error in the title. I've seen this error, I think when setting up Mycroft in a VM and it was because I had installed as root. I'm a little confused here because the Docker container doesnt have a user beside root.
The packages are installed into /opt so I might assume I'm supposed to create a user, so I did, and use the command below to start the container with that user, but I get another error:
Changing ownership of /opt/mycroft to user: with group: abc
sudo: effective uid is not 0, is /usr/bin/sudo on a file system with the 'nosuid' option set or an NFS file system without root privileges?
Starting audiotest
Traceback (most recent call last):
File "/usr/lib/python3.6/runpy.py", line 183, in _run_module_as_main
....
File "/opt/mycroft/mycroft/configuration/config.py", line 17, in <module>
import inflection
ModuleNotFoundError: No module named 'inflection'
I'm working through the errors for clues, but either way, the instructions for Docker below are lacking the necessary steps to make it work.
https://mycroft-ai.gitbook.io/docs/using-mycroft-ai/get-mycroft/docker
Could please if possible provide the instruction to pull and run the docker image of mycroft on MacOS?
I'm new to MyCroft, but, after fixing #36, and following the steps at:
https://github.com/MycroftAI/docker-mycroft#how-to-build-and-run
I get:
Searching for for 'skill-volume'...'skill-volume' skill was not found
Searching for for 'skill-weather'...'skill-weather' skill was not found
Searching for for 'skill-wiki'...'skill-wiki' skill was not found
Searching for for 'fallback-aiml'...installing
Installing from: https://github.com/forslund/fallback-aiml.git
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/usr/local/lib/python2.7/site-packages/mycroft_core-0.9.1-py2.7.egg/mycroft/messagebus/send.py", line 53, in <module>
ws = create_connection(url)
File "/usr/local/lib/python2.7/site-packages/websocket/_core.py", line 104, in create_connection
websock.connect(url, **options)
File "/usr/local/lib/python2.7/site-packages/websocket/_core.py", line 266, in connect
self.sock, addrs = connect(url, self.sock_opt, proxy_info(**options))
File "/usr/local/lib/python2.7/site-packages/websocket/_http.py", line 63, in connect
sock = _open_socket(addrinfo_list, options.sockopt, options.timeout)
File "/usr/local/lib/python2.7/site-packages/websocket/_http.py", line 116, in _open_socket
raise err
socket.error: [Errno 111] Connection refused
/usr/local/bin/msm: line 105: 10:23:00.086: command not found
Cloning into 'fallback-aiml'...
Installing requirements...
/usr/local/bin/msm: line 325: workon: command not found
ERROR: Unable to activate 'mycroft' virtualenv, requirements not installed.
Searching for for 'skill-mark1-demo'...'skill-mark1-demo' skill was not found
msm: error 202
Starting service…
Service started
Starting service…
Service started
Removing intermediate container 29ef942e0dd6
---> bd7701319b0c
Step 12/12 : ENTRYPOINT ["tail", "-f", "/var/log/mycroft-skills.log"]
---> Running in fe5e4335cfce
Removing intermediate container fe5e4335cfce
---> 188b76af106d
Successfully built 188b76af106d
which results in
when running cli.sh inside the container.
Hi there,
the entrypoint for the docker container is /opt/mycroft/startup.sh
, which then calls start-mycroft.sh
. The latter script, has the following function:
function source-venv() {
# Enter Python virtual environment, unless under Docker
if [ ! -f "/.dockerenv" ] ; then
source ${VIRTUALENV_ROOT}/bin/activate
fi
}
Which will do not what is expected as .dockerenv
does not exist:
(.venv) root@7c957415279a:/opt/mycroft# ls -la .dockerenv
ls: cannot access '.dockerenv': No such file or directory
I am not sure I am missing something, and this is why I raised an issue and not a PR.
Thank you for your hard work! :)
When I bin/bash into the container and run ./start-mycroft.sh cli
, I am getting the following error
Traceback (most recent call last):
File "/usr/lib/python3.6/runpy.py", line 183, in _run_module_as_main
mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
File "/usr/lib/python3.6/runpy.py", line 109, in _get_module_details
__import__(pkg_name)
File "/opt/mycroft/mycroft/__init__.py", line 17, in <module>
from mycroft.api import Api
File "/opt/mycroft/mycroft/api/__init__.py", line 18, in <module>
import requests
ModuleNotFoundError: No module named 'requests'
Running latest version pulled from DockerHub tonight.
@forslund any clue which file(s) it puts all this stuff in? So I can update the instructions so people make this an external volume so it persists between reloads?
Python Exception after "git pull" comand on mycroft-core folder
(.venv) root@686b055bb9b2:/opt/mycroft# ./start-mycroft.sh cli
Initializing...
Changing ownership of /opt/mycroft to user: with group: root
Starting background service bus
CAUTION: The Mycroft bus is an open websocket with no built-in security
measures. You are responsible for protecting the local port
8181 with a firewall as appropriate.
Starting background service skills
Starting cli
_Traceback (most recent call last):
File "/usr/lib/python3.6/runpy.py", line 183, in _run_module_as_main
mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
File "/usr/lib/python3.6/runpy.py", line 109, in get_module_details
import(pkg_name)
File "/opt/mycroft/mycroft/init.py", line 17, in
from mycroft.api import Api
File "/opt/mycroft/mycroft/api/init.py", line 22, in
from mycroft.configuration import Configuration
File "/opt/mycroft/mycroft/configuration/init.py", line 15, in
from .config import Configuration, LocalConf, RemoteConf
File "/opt/mycroft/mycroft/configuration/config.py", line 25, in
from mycroft.util.json_helper import load_commented_json, merge_dict
File "/opt/mycroft/mycroft/util/init.py", line 24, in
from mycroft.util.format import nice_number
File "/opt/mycroft/mycroft/util/format.py", line 34, in
from lingua_franca import get_default_loc
ImportError: cannot import name 'get_default_loc'
To Reproduce
When a new skill is added, mycroft suggest to update using "git pull" command, but it causes the reported error
>> Your version is outdated. The latest version is 21 oh 2, release 0. To upgrade run 'git pull' in
the mycroft-core folder and restart me.
Environment (please complete the following information):
I've tried to pull a new version from DokerHub, but I am not able to download the 21.x
Following the documentation on the Docker wiki, it does not work as described.
git clone https://github.com/MycroftAI/docker-mycroft.git
cd docker-mycroft
docker build -t ${USER}/mycroft .
docker run -itd -p 8181:8181 ${USER}/mycroft
bash into the container
./cli.sh
The output shows the following:
21:25:20.716 - mycroft.messagebus.client.ws:on_error:70 - ERROR - Exception("Uncaught 'error' event.",)
21:25:20.720 - mycroft.messagebus.client.ws:on_error:71 - WARNING - WS Client will reconnect in 40 seconds.
And entering what time is it
also returns errors.
Update README file with proper information for building, running and playing with Mycroft in Docker
Hello there,
using this with a Jabra 510 USB on the host, and works flawlessly for a while...eventually dying (not responding to "Hey Mycroft", and not even using mycroft-say-to
command).
From the voice.log
file:
2020-04-24 00:10:58.723 | INFO | 31 | mycroft.client.speech.listener:create_wakeup_recognizer:360 | creating stand up word engine
2020-04-24 00:10:58.724 | INFO | 31 | mycroft.client.speech.hotword_factory:load_module:386 | Loading "wake up" wake word via pocketsphinx
2020-04-24 00:10:58.747 | INFO | 31 | mycroft.messagebus.client.client:on_open:67 | Connected
ALSA lib pcm.c:8306:(snd_pcm_recover) overrun occurred
ALSA lib pcm.c:8309:(snd_pcm_recover) cannot recovery from overrun, prepare failed: Input/output error
Expression 'alsa_snd_pcm_prepare( stream->capture.pcm )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2932
Expression 'AlsaStart( stream, 0 )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 3246
Expression 'AlsaRestart( self )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 3313
Expression 'PaAlsaStream_HandleXrun( stream )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 4520
My config in the host I am assuming it's correct, since it works on both the host, and the container (although just for a while in the latter).
For the container, I mount the pulse socket and the cookie as required in the README.
Any help would be appreciated.
Seems like there might be an issue with using Docker for Mac and how OSX audio devices work. Still investigating.
In order to make TTS work on docker-mycroft, I had to first use scripts/install-mimic.sh
, and the add the created directory to my PATH
. It would be great if this were mentioned in the README.
Would it be feasible to convert this container to something usable in production as well? It would greatly reduce people's pains in trying to run Mycroft on platforms other than a Pi, under the condition Docker is available, of course.
Need to get authentication issue resolved so it can register correctly with home.mycroft.ai
2017-05-16 14:30:32,042 - mycroft.configuration - INFO - Loading configuration: /mycroft/ai/mycroft/configuration/mycroft.conf
2017-05-16 14:30:32,042 - mycroft.configuration - INFO - Loading configuration: mycroft.ai
2017-05-16 14:30:32,727 - mycroft.configuration - WARNING - Failed to fetch remote configuration: HTTPError(u'The supplied authentication is invalid',)
Currently investigating issue.
Hi there,
Great project, I am wondering if we could trim down the image size a bit by switching to Alpine? Would this be possible?
Thanks!
Test mounting with --device /dev/snd:/dev/snd and check it all works.
After running through the installation steps, the voice service fails with this error:
Exception: Mimic is not installed. Make sure install-mimic.sh ran properly.
Installing now manually to see if it resolves.
Is your feature request related to a problem? Please describe.
Lates mycroft core relase is 21.2.2.
The current version used by the docker container is 21.2.1, that has a bug in the mycroft-settings set
command: is still tries to write to ~/.mycroft/mycroft.config
where the other commands work on the ~/.config/mycroft/mycroft.conf
file.
(this also means that the documentation needs to be updated to use the new configuration folders for docker volume binding)
Describe the solution you'd like
An update docker image published on docker hub.
An automated build workflow (via github actions or similar) for new releases would also be wonderful!
Describe alternatives you've considered
Obviusly I can build it myself, but I think the community would benefit for this to be done by the official channel
Notice docker only for amd64 architecture
Is it possible to make docker for arm64?
after launching via docker run --device /dev/snd:/dev/snd --privileged -it mycroftai/mycroft /bin/bash
, I ran supervisord
, but am not sure how to test/use the apparently running services:
# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 18260 2300 ? Ss 01:50 0:00 /bin/bash
root 13 0.0 0.6 60868 14236 ? Ss 01:50 0:01 /usr/bin/python /usr/bin/supervisord
root 14 0.0 0.0 17972 236 ? S 01:50 0:00 bash /mycroft/ai/start.sh service
root 15 0.0 0.0 17972 236 ? S 01:50 0:00 bash /mycroft/ai/start.sh voice
root 16 0.0 0.0 17972 232 ? S 01:50 0:00 bash /mycroft/ai/start.sh skills
root 26 0.1 1.3 1046844 26988 ? Sl 01:50 0:06 python /mycroft/ai/mycroft/skills/main.py
root 27 0.1 1.5 1222096 31636 ? Sl 01:50 0:06 python /mycroft/ai/mycroft/client/speech/main.py
root 28 0.5 1.0 76352 20588 ? S 01:50 0:29 python /mycroft/ai/mycroft/messagebus/service/main.py
root 86 0.0 0.1 15568 2120 ? R+ 03:13 0:00 ps aux
if I open up port 8000 by adding -p 8000:8000
to the docker run command, I get this error trying to open localhost:8000 in a browser:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 1390, in _execute
result = self.prepare()
File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 2103, in prepare
raise HTTPError(self._status_code)
HTTPError: HTTP 404: Not Found
It would be great if the README had a fourth bullet indicating how to verify that the services are running and what to try next.
HI, How to run mycroft on docker MAC. Basically what config parameters should be specified. I have install pulseaudio
It would be great if the image could be built against Ubuntu Bionic. I'm trying to connect Mycroft to ROS and there are pre-built packages for Ubuntu Bionic but not for Artful.
I've tried replacing the from tag, but unfortunately, it looks like the dev-tools script doesn't pick up all dependencies.
Hi,
I was trying to build the latest commit 38be3e2 using "docker build -t mycroft .". Unfortunately this did not work:
Collecting msm==0.8.8
Using cached msm-0.8.8-py3-none-any.whl (25 kB)
Collecting msk==0.3.16
Downloading msk-0.3.16-py3-none-any.whl (47 kB)
Collecting adapt-parser==0.3.7
Downloading adapt-parser-0.3.7.tar.gz (19 kB)
ERROR: Command errored out with exit status 1:
command: /opt/mycroft/.venv/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9u69j8kb/adapt-parser/setup.py'"'"'; __file__='"'"'/tmp/pip-install-9u69j8kb/adapt-parser/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-9u69j8kb/adapt-parser/pip-egg-info
cwd: /tmp/pip-install-9u69j8kb/adapt-parser/
Complete output (7 lines):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-9u69j8kb/adapt-parser/setup.py", line 21, in <module>
long_description = fh.read()
File "/usr/lib/python3.6/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 1825: ordinal not in range(128)
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
WARNING: You are using pip version 20.0.2; however, version 20.2.4 is available.
You should consider upgrading via the '/opt/mycroft/.venv/bin/python -m pip install --upgrade pip' command.
Warning: Failed to install required dependencies. Continue? y/N
The command '/bin/sh -c set -x && sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list && apt-get update && apt-get -y install git python3 python3-pip locales sudo && pip3 install future msm && git clone https://github.com/MycroftAI/mycroft-core.git /opt/mycroft && cd /opt/mycroft && mkdir /opt/mycroft/skills && CI=true /opt/mycroft/./dev_setup.sh --allow-root -sm && mkdir /opt/mycroft/scripts/logs && touch /opt/mycroft/scripts/logs/mycroft-bus.log && touch /opt/mycroft/scripts/logs/mycroft-voice.log && touch /opt/mycroft/scripts/logs/mycroft-skills.log && touch /opt/mycroft/scripts/logs/mycroft-audio.log && apt-get -y autoremove && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*' returned a non-zero code: 1
I deleted everything and tried again. Same result.
Is this a bug or a problem with my setup?
Describe the bug
I'm trying to use the jellyfin skill to play music. The skill appears to be working properly up to the point where it says it is playing music, then this shows up in the logs:
2022-03-29 00:16:14.563 | INFO | 28 | mycroft.audio.audioservice:play:434 | No service found for uri_type: https
Is this perhaps something related to a missing cert/SSL/TLS package in the Docker image?
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Music plays
Environment (please complete the following information):
Got the following error when building the image (Docker version 17.06.1-ce on Ubuntu 16.04):
building 'fann2._libfann' extension
creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/fann2
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DSWIG_COMPILE -I./include -I../include -Iinclude -I/usr/include/python2.7 -c fann2/fann2_wrap.cxx -o build/temp.linux-x86_64-2.7/fann2/fann2_wrap.o
cc1plus: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++
c++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/fann2/fann2_wrap.o -ldoublefann -o build/lib.linux-x86_64-2.7/fann2/_libfann.so
/usr/bin/ld: cannot find -ldoublefann
collect2: error: ld returned 1 exit status
error: command 'c++' failed with exit status 1
----------------------------------------
Command "/usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-I9cX5u/fann2/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-NFode6-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-I9cX5u/fann2
You are using pip version 7.1.2, however version 9.0.1 is available.
Hy i tryed to run this docker image on an arm processor, but its nmt stirting beacuse i guess the packadges inside are build for x86 /amd64?
and i can't build it from scratch beacause mimic is not availible on the repo for arm..
Describe the bug
Can't install due to lack of dbus libraries.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
KS must install
I solver by installing library: apt install libdbus-1-dev
Please include it in container.
Thanks!
Environment (please complete the following information):
New repo for Mycroft Core at: https://github.com/MycroftAI/mycroft-core - let's point this at it, and get a public repo out into the world!
Set up automated build to hub.docker.io as well as possibly start up a private registry for Mycroft services
I made a fix for part of this in the Docker repository, but it looks like the ultimate fix is a bit more complex, and I wanted to ask for a quick sanity check before completing it. From dev_setup.sh:
# Start the virtual environment
source "${VIRTUALENV_ROOT}/bin/activate"
...
if ! pip install -r requirements.txt ; then
From start-mycroft.sh:
function source-venv() {
# Enter Python virtual environment, unless under Docker
if [ ! -f "/.dockerenv" ] ; then
source ${VIRTUALENV_ROOT}/bin/activate
fi
}
So it looks like dev_setup.sh, which is run from Docker, indiscriminately creates the virtualenv, while the start script only enters it when in Docker.
Is that analysis correct? If so, which solution is the right one? Should we always create a virtualenv, or should we selectively not create/enter one when in Docker? I'd opt for no Docker-specific tweaks in the main repo unless absolutely necessary, so removing the Docker check from source-venv
or maybe even source-venv
entirely and just running source
. But maybe there's a reason for that?
In any case, Docker for development environments is nice, so I'd like to get this working again. :) The official build on Docker Hub is several months out-of-date, and it looks like it's automated, so I assume if we fix this then the process will start again and we'll have updated builds without effort on your part. Thanks!
https://github.com/MycroftAI/docker-mycroft/blob/master/Dockerfile#L18 :
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F3B1AA8B && \
fails with the following:
--recv-keys
F3B1AA8B
gpg: requesting key F3B1AA8B from hkp server keyserver.ubuntu.com
?: keyserver.ubuntu.com: Connection refused
gpgkeys: HTTP fetch error 7: couldn't connect: Connection refused
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
gpg: keyserver communications error: keyserver unreachable
gpg: keyserver communications error: public key not found
gpg: keyserver receive failed: public key not found
The command '/bin/sh -c sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list && apt-get update && apt-get -y upgrade && apt-get install -yq --no-install-recommends apt-transport-https python-pip curl wget software-properties-common && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F3B1AA8B && bash -c 'echo "deb http://repo.mycroft.ai/repos/apt/debian debian main" > /etc/apt/sources.list.d/repo.mycroft.ai.list' && apt-get update && apt-get install -yq mycroft-core && apt-get install -f && apt-get upgrade mycroft-core' returned a non-zero code: 2
Makefile:4: recipe for target 'build' failed
probably because of a blocked port (https://unix.stackexchange.com/questions/75892/keyserver-timed-out-when-trying-to-add-a-gpg-public-key) at my University.
Changing that line to
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys F3B1AA8B && \
resolves the issue.
Need to get the build from source working
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.