Docker Version

Hello!

I have been terribly quite. Full time work and part time studies will do that to a person.

I created a simple Dockerfile to containerise manager within a docker container.

This docker uses the official mono image.

@lubos, would it be okay if I uploaded the file to dockerhub for general use?

If your keen, then awesome! However, I have one question. Where can I find a download link for the server edition that does not include a version number?

Anyone looking at this wondering why, the short answer is that dockerised apps fit in nicely with some setups, like mine. They provide a nice way of separating things out. This is, however, only really useful to you, if you already have an IT infrastructure making use of Docker.

Dockerfile

In this file we:

  1. Use the official Mono image,
  2. Make the manager directory for the .exe,
  3. Fetch the latest files and un-tar,
  4. Set the command used to run in the container,
  5. Define the /data directory to be persistent.

Please let me know if anyone would like to add anything.

FROM mono:latest

RUN mkdir /usr/share/manager-server
RUN curl https://mngr.s3.amazonaws.com/$(curl -s http://www.manager.io/version.txt)/ManagerServer.tar.gz | tar xvz -C /usr/share/manager-server

CMD ["mono", "/usr/share/manager-server/ManagerServer.exe","-port","8080","-path","/data"]

VOLUME /data
1 Like

It doesnā€™t directly answer your question ā€¦ but you can retrieve the current version from the following text file, and use that to determine the correct download URL:

http://www.manager.io/version.txt

How does Docker deal with persistence?

I think the best would be if Docker image would already include installed Manager Server and Caddy so the whole setup works out of the box without installing anything from remote location.

Just a thought -
If considering going down the road of ā€˜containerisingā€™ generally, is there any mileage in looking at either Flatpack or Snap packages.?.
The advantage for the developer would be that he just has to publish and maintain one package for all *nix based operating systems and not have to have a separate one for all the different ā€˜flavours and versionsā€™. Additionally, Snaps and Flatpacks are containerised/sand-boxed by designā€¦kind of a ā€˜one size fits all solutionā€™.

Replies

From the bottom up:

@xero50 this would be great! I have no experience with this stuff yet. I am waiting to see how things ā€œsettleā€ before getting into it. Manager is very easy to containerise, but I am not sure about the other technologies, yet.

@lubos I will edit the first post with a code snippet including my Dockerfile once I have made some tweaks. The image on dockerhub would be built from this file. It would use mono as the base, then pull in latest manager. So a user pulling the docker image would just need to pull new every little while, then itā€™ll be up to date.

Persistence would be handled by mounting a volume from the host into the container. This would be the data directory. The docker container can be updated/thrown away without worrying about that volume mount.

One Q: What is Caddy?

@ShaneAU fantastic, thank you. I will do some Linux Foo to use this to DL the latest when creating the docker image.

Note

There was one massive downside to this. The image was a whopping 500Meg. This is mainly because the mono image was huge too. I have just checked and the mono image is smaller now. Still not tiny though. I will update the first post with the Dockerfile and image size, once I have updated some things.

Note 2

Docker image is still larger that 500meg. So thatā€™s a down side.

1 Like

Caddy is zero-config HTTPS proxy. It basically adds HTTPS to Manager Server with no effort. See: https://caddyserver.com/

As far as Mono goes. One day, Manager will migrate to .NET Core which will remove Mono dependency.

1 Like

Is there any guide how do I run and maintain docker image for manager?

The way I look at it, is like running docker image of mono, then install/update manager inside the container?

Ohā€¦ Found it.

https://hub.docker.com/r/s6s8/manager.io

This is my version:

https://hub.docker.com/r/devishian/manager.io

I try to keep very it updated. If you use my version I can give you some support.

1 Like

I would like to add to this, can i make a pull request for some additions and so on? I have my own repo with some tweaks, but I have not gotten to adding it to docker hub. If you plan on maintaining this, Iā€™d rather contribute to yours @Davide.

@lubos, whats a nice canonical way to reach the image? Or is https://d2ap5zrlkavzl7.cloudfront.net/18.11.66/ManagerServer.tar.gz intended to be correct for future?

Dear @procsum I can try to add your request to the docker version. However you have to keep in mind that I cannot guarantee that I can make them work for sure.

You can reach it through the URL you wrote but you have always to update the directory 18.11.66 to the one of the version you have to download. Once I used to make it automatically update but all of sudden it ended working so now I update the URL manually from time to time.

Thanks. and I will.

Docker mechanism doesnā€™t allow automatically update the image with latest mono and manager server?

I can get caddy docker to be used normally. a bit confusing /Caddyfile part at first.

When I try to run by made it as service systemctl the caddy via apt-get install following lubosā€™ guide, it canā€™t run more than 1 bracket in the config for some reason. Lucky me having caddy docker image around.

In another post I expressed worry about this change with recent Manager server update problems and realize that you have been considering this since September 2017. So my apologies for not recognizing this. However, problem remains that install instruction using Caddy as explained is no longer functional and would appreciate new instructions that make it as effortless as before to install the new Manager server applications on Ubuntu servers using SSL. Many thanks in advance.