从用户github源设置容器

Can be closed, not sure how to do it.

I am to be quite frank lost right now, the user whom published his source on github somehow failed to update the installation instructions when he released a new branch. Now, I am not dense, just uneducated when it comes to docker. I would really appreciate a push in the right direction. If I am missing any information from this post, please allow me to provide it in the comments.

Current Setup

  • O/S - Debian 8 Minimal (Latest kernel)
  • Hardware - 1GB VPS (KVM)
  • Docker - Installed with Compose (# docker info)

I am attempting to setup this (https://github.com/pboehm/ddns/tree/docker_and_rework), first I should clone this git to my working directory? Lets say /home for example. I will run the following command;

git clone -b docker_and_rework https://github.com/pboehm/ddns.git

Which has successfully cloned the source files into /home/ddns/... (working dir)

Now I believe I am supposed to go ahead and build something*, so I go into the following directory;

/home/ddns/docker

Inside contains a docker-compose.yml file, I am not sure what this does but by looking at it, it appears to be sending a bunch of instructions which I can only presume is to do with actually deploying or building the whole container/image or magical thing right? From here I go ahead and do the following;

docker-compose build

As we can see, I believe its building the container or image or whatever its called, you get my point (here). After a short while, that completes and we can see the following (docker images running). Which is correct, I see all of the dependencies in there, but things like;

go version

It does not show as a command, so I presume I need to run it inside the container maybe? If so I dont have a clue how, I need to run 'ddns.go' which is inside /home/ddns, the execution command is;

ddns --soa_fqdn=dns.stealthy.pro --domain=d.stealthy.pro backend

I am also curious why the front end web page is not showing? There should be a page like this;

http://ddns.pboehm.org/

But again, I believe there is some more to do I just do not know what??

The instructions it runs that you probably care about are in the Dockerfile, which for that repo is in the docker/ddns/ directory. What you're missing is that Dockerfile creates an image, which is a template to create an instance. Every time you docker run you'll create a new instance from the image. docker run docker_ddns go version will create a new instance of the image, run go version and output it, then die. Running long running processes like the docker_ddns-web image probably does will run the process until something kills that process. The reason you can't see the web page is probably because you haven't run docker-compose up yet, which will create linked instances of all of the docker images specified in the docker-compose.yml file. Hope this helps

docker-compose build will only build the images.

You need to run this. It will build and run them.

docker-compose up -d

The -d option runs containers in the background

To check if it's running after docker-compose up

docker-compose ps

It will show what is running and what ports are exposed from the container. Usually you can access services from your localhost

If you want to have a look inside the container

docker-compose exec SERVICE /bin/bash

Where SERVICE is the name of the service in docker-compose.yml