Open carrollgt91 opened 9 years ago
What is a specific drakefile that you have problems with? The demo directory itself does not have a runnable drakefile. I tried reproducing locally on some of the demo drakefiles, and it works fine. As for your Docker container, I don't know a lot about docker but after installing it and downloading your dockerfile, the commands you recommend do not succeed in making anything happen:
$ docker build -t drake-bug .
Sending build context to Docker daemon
FATA[0000] Post http:///var/run/docker.sock/v1.18/build?cpusetcpus=&cpushares=0&dockerfile=Dockerfile&memory=0&memswap=0&rm=1&t=drake-bug: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?
Ah my bad, I was running the peopleskills workflow.
I've also tried some simple drakefiles (the one in the tutorial comes to mind using grep i $INPUT > $OUTPUT
and the same bug is occurring.
As for why your Docker is failing, if you're running on OSX you have to use boot2docker. You might try boot2docker start
and then run the docker commands again.
Thanks!
Does this docker instance really have no text editor at all? How am I supposed to debug this? I can't run emacs, vim, nano, anything. And I apparently can't apt-get any of them either.
I'll set up a better debug environment where the repo is attached as a volume instead so that you can edit the code on your local machine and run it inside the container.
Here are the steps to best test it:
cd
into the drake repository on your computerdocker run -i -v
pwd:/home/drake -t clojure /bin/bash
Now, you can edit the code on your local machine, and use the bash shell running in the container to execute the code. The repository will be located in the /home/drake
directory in the container, and is effectively symlinked to the directory on your own computer.
You could probably even get an nrepl server up and running by specifiying a port using the -p
flag when you run the container See this for more details.
Let me know if you need any more information. I haven't had time to boot this up on my clojure environment, but I'll dig in over the weekend to see if I can't help in getting to the bottom of it.
I ran into the same issue on docker. I have a workaround, which is to add the SHELL env variable before launching a drake workflow:
export SHELL="/bin/bash"
The issue is that when SHELL is null it affects drake: https://github.com/Factual/drake/blob/b71c1d11b2bc473615606586a6f9eb1b1d19b082/src/drake/protocol_interpreters.clj#L17
When running a step, this causes an incorrect split: https://github.com/Factual/drake/blob/develop/src/drake/shell.clj#L85
Which passes in an empty array as an arg (typed as Object[]), leading to the ClassCastException: https://github.com/Factual/drake/blob/develop/src/drake/shell.clj#L97
I'm receiving the following error when trying to run pretty much any drake workflow, including the workflows included with the source:
I'm running this within Docker using open-jdk-6 (or 7, the same error crops up) and the latest version of leiningen. Easiest way to reproduce:
docker build -t drake-bug
docker run --name drake-bug -t drake-bug .
docker exec -it drake-bug bash
cd
into the demo directory in the drake repojava -jar ../../drake.jar