drone / drone-wall

Dashboard for the Drone CI server
261 stars 44 forks source link

How to start the official docker image against my drone? #35

Closed hedefalk closed 8 years ago

hedefalk commented 8 years ago

This is more a question than anything, but I don't understand how to start/build this thing. I have private drone servers and want to connect this ui. I got the impressions that this project would be a quick setup.

Just running the official image doesn't work for me:

docker run -d -p 9898:80 --name drone-wall drone/drone-wall`

~ ❯❯❯ curl localhost:9898                                                                          ⏎
curl: (7) Failed to connect to localhost port 9898: Connection refused

But checking in the image, everything seems fine:

~ ❯❯❯ docker exec -it drone-wall sh                                                                ⏎
/ # ps ax
PID   USER     COMMAND
    1 root     /usr/sbin/uhttpd -f -p 80 -h /www
    7 root     sh
   11 root     ps ax
/ # ls -l /www
total 1544
-rw-r--r--    1 root     root       1527462 Mar  6 00:22 dist.js
drwxr-xr-x    2 root     root          4096 Mar  6 00:22 favicon
-rw-r--r--    1 root     root          3153 Mar  6 00:19 index.html
-rw-r--r--    1 root     root         29697 Mar  6 00:22 project.css
-rw-r--r--    1 root     root         10202 Mar  6 00:22 templates.js

What am I missing? I for one haven't made any settings or anything to point to my API in this case?

So I then tried to just build myself to run locally after editing env.json but the npm build doesn't work against my local node (4.2-something). peerDeps and stuff:

https://gist.github.com/hedefalk/600c8f157ba432b4df3b6357852e09ed

bradrydzewski commented 8 years ago

@hedefalk you configure the wall in the browser. When you first visit the wall it prompts you to add your drone server address and token.

hedefalk commented 8 years ago

@bradrydzewski Thanks! Yeah, I realized. I succeeded in starting drone-wall from grunt even though npm install failed. Probably just test deps. That part of my question was just a confusing side step though.

My main question is how to start the docker image. It simply doesn't seem to work for me. I get connection refused on port I mapped to 80 in the container.

I did get drone-wall up locally by running npm start -- --env=prod though.

bradrydzewski commented 8 years ago

I just downloaded the latest wall with the following command:

$ docker pull drone/drone-wall
Using default tag: latest
latest: Pulling from drone/drone-wall

a3ed95caeb02: Pull complete 
1775fca35fb6: Already exists 
718e21306e6b: Already exists 
889bfeab2d4e: Already exists 
8ac43f1732b7: Already exists 
cefd08b5f834: Already exists 
a32be2ed7953: Already exists 
1c78be7a5ec7: Already exists 
74984e6e6d1c: Already exists 
4236fca6d43d: Pull complete 

and then ran the following command to start:

docker run -d -p 8001:80 drone/drone-wall

and then I opened http://localhost:8001 in my browser which then launched the app and re-directed me to http://localhost:8001/#/config to setup the configuration.

hedefalk commented 8 years ago

Hm, ok. Yeah, weird. For me the image seems "dead". Doing exactly like above yields:

> docker pull drone/drone-wall    
Using default tag: latest
latest: Pulling from drone/drone-wall
a3ed95caeb02: Already exists
1775fca35fb6: Already exists
718e21306e6b: Already exists
889bfeab2d4e: Already exists
8ac43f1732b7: Already exists
cefd08b5f834: Already exists
a32be2ed7953: Already exists
1c78be7a5ec7: Already exists
74984e6e6d1c: Already exists
4236fca6d43d: Already exists
Digest: sha256:aafca10d2ff72fdd051a2e665fc49b6b6c708fec682664d51bdb699fa3ae4dcc
Status: Image is up to date for drone/drone-wall:latest

> docker run -d -p 8001:80 drone/drone-wall

> curl http://localhost:8001                                 
curl: (7) Failed to connect to localhost port 8001: Connection refused
bradrydzewski commented 8 years ago

You would be able to detect a dead container by running docker ps. You can see below that when I run docker ps I can see the running container linked to port 8001:

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
e6acdf45d18a        drone/drone-wall    "/usr/sbin/run_uhttpd"   About an hour ago   Up About an hour    0.0.0.0:8001->80/tcp   admiring_hypatia

If the container is running you can use docker logs <container_id> to view the logs and see what is going on. If the container dies you can use docker run but without -d to see if you can capture more information by not running in the background.

bradrydzewski commented 8 years ago

I also wonder if you are using boot2docker or docker toolbox and this is a Docker network configuration issue? Have you tried accessing other services via localhost to rule out docker networking issues?

Note some similar issues people have logged on Stack Overflow and GitHub Issues:

hedefalk commented 8 years ago

I don't mean dead like that :) As I wrote in the first post, I looked into the running container. This after noticing there were no logs. But your definitely right, there seems to be some network issue. I just re-installed docker toolbox today for some reason.

~/d/p/docker-ensime-atom ❯❯❯ docker start drone-wall                                                                                                                                        ⏎ master ⬆ ✱
drone-wall
~/d/p/docker-ensime-atom ❯❯❯ docker ps                                                                                                                                                        master ⬆ ✱
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                  NAMES
341f486b361f        drone/drone-wall    "/usr/sbin/run_uhttpd"   About a minute ago   Up About a minute   0.0.0.0:8001->80/tcp   sick_jang
1dd9ec0f7cc0        drone/drone-wall    "/usr/sbin/run_uhttpd"   13 hours ago         Up 1 seconds        0.0.0.0:9898->80/tcp   drone-wall
~/d/p/docker-ensime-atom ❯❯❯ docker logs drone-wall                                                                                                                                           master ⬆ ✱
~/d/p/docker-ensime-atom ❯❯❯ docker run --name some-ghost -p 8003:2368 -d ghost                                                                                                               master ⬆ ✱
Digest: sha256:83024e44d138c36b4e23fe41e6463a35cba05b273054570c8231f808e1ad2a99
Status: Downloaded newer image for ghost:latest
2f689da3ffa96e39923ef4571559f6655864dfb599b39c2d8653258b6e4f9243
~/d/p/docker-ensime-atom ❯❯❯ docker ps                                                                                                                                                        master ⬆ ✱
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
2f689da3ffa9        ghost               "/entrypoint.sh npm s"   7 seconds ago       Up 7 seconds        0.0.0.0:8003->2368/tcp   some-ghost
341f486b361f        drone/drone-wall    "/usr/sbin/run_uhttpd"   3 minutes ago       Up 3 minutes        0.0.0.0:8001->80/tcp     sick_jang
1dd9ec0f7cc0        drone/drone-wall    "/usr/sbin/run_uhttpd"   13 hours ago        Up 2 minutes        0.0.0.0:9898->80/tcp     drone-wall
~/d/p/docker-ensime-atom ❯❯❯ curl localhost:8003                                                                                                                                              master ⬆ ✱
curl: (7) Failed to connect to localhost port 8003: Connection refused

So connection refused on other stuff I know was working before…