Skip to content

Create official Docker image on Docker Hub #13

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
atombender opened this issue Nov 30, 2018 · 15 comments
Closed

Create official Docker image on Docker Hub #13

atombender opened this issue Nov 30, 2018 · 15 comments
Assignees

Comments

@atombender
Copy link

As with FoundationDB, there's no official Docker image, despite the presence of a Dockerfile. It'd be nice to have an official image.

@apkar
Copy link
Contributor

apkar commented Nov 30, 2018

I assume you are asking about Docker image for the build. That is what Dockerfile is for. Publishing image for the build can be done quickly. As you can see in the FoundationDB case, Docker image for running is a bit complicated. There is an ongoing PR for this on FoundationDB. Once that is merged we can follow the example.

cc: @AlvinMooreSr

@atombender
Copy link
Author

Yes, I'm talking about an official image, not a Dockerfile. The foundationdb repository on Docker.com is where I'd expect to find it.

@apkar
Copy link
Contributor

apkar commented Nov 30, 2018

Ah, sorry I was not clear. We can have two docker images - one for build and one for deployment. We definitely want to do both. Docker image for build will happen soon and image to deploy Document Layer will happen after.

@apkar
Copy link
Contributor

apkar commented Dec 3, 2018

PR on FoundationDB core repo for docker image apple/foundationdb#887

@apkar apkar self-assigned this Dec 4, 2018
@apkar
Copy link
Contributor

apkar commented Dec 4, 2018

We can follow the example of FoundationDB docker image. There are a couple of details which are not trivial, writing them down here hoping to see better ideas.

  • FoundationDB client libraries
    • Get client libraries on startup - If there is a way to find out FDB server version from the client, then we could get the required client library on startup. This will increase the startup time. As far as I know, it is not possible as there is no easy way to get FDB server version.
    • Include client libraries in the image - client libraries will be downloaded during the docker image build process. This would mean we have to update the Document Layer docker image with new FoundationDB releases. I am thinking of going with this approach.
  • Cluster file
    • We could make this an environment variable which could be set at runtime. We have to pass the complete cluster file text as an environment variable. Can't think of any better approach so far.

cc: @brownleej

@brownleej
Copy link
Member

I think that the ideal way to get the cluster file and the client libraries will vary based on how someone is deploying the image, e.g. through Swarm, Kubernetes, or some other system. In the main FDB docker image, we have a script for generating a cluster file based on looking up coordinator names in DNS, but that probably won't work outside a simple local testing environment.

@platinummonkey
Copy link

In the main FDB docker image, we have a script for generating a cluster file based on looking up coordinator names in DNS, but that probably won't work outside a simple local testing environment.

I think this would be great if it was just a static file. Then the user can wrap whatever they want on how to get that in there: volume mount, some ConfigMap mount, or some script to generate this on the fly.

FoundationDB client libraries

I think this will also be language and build-system dependent. maybe just provide a template for a simple stripped down image tagged by version that people could base off of, or use a template to add to their existing images. Honestly I'd worry about this last $0.02.

Though personally I'd vote for starting simple.

@apkar
Copy link
Contributor

apkar commented Jan 4, 2019

Dockerfile is available now.

@AlvinMooreSr can you push the image to Docker Hub, please?

@apkar
Copy link
Contributor

apkar commented Jan 9, 2019

Thanks @AlvinMooreSr!

foundationdb/fdb-document-layer:1.6.0 is available now.

@apkar apkar closed this as completed Jan 9, 2019
@bencherian
Copy link

@apkar @AlvinMooreSr Is there a plan to push the 1.6.1 release to DockerHub as well?

@apkar
Copy link
Contributor

apkar commented Jan 31, 2019

@bencherian Yeah, we are still in the process of releasing. It's going to happen this week.

@bencherian
Copy link

The existing Docker image for the document layer with the "latest" tag on DockerHub is not the same as the latest release 1.6.2. (It's significantly larger and is a few days newer)? What version is this? (There are also tags for 0.0.4 and 0.0.5, despite those not having releases on GitHub...)

@apkar
Copy link
Contributor

apkar commented Feb 21, 2019

Good catch! Thanks for reporting. Seems like we have pushed build docker images to runtime path. We will fix it.

cc @AlvinMooreSr

@AlvinMooreSr
Copy link
Contributor

AlvinMooreSr commented Feb 21, 2019

The docker build images have been removed and the latest tag has been updated with the correct version. http://hub.docker.com/r/foundationdb/fdb-document-layer/tags

@wenfang6
Copy link

l pull fdb-document-layer image from https://hub.docker.com/r/foundationdb/fdb-document-layer/tags, l add fdb.cluster in the image and l start document layer server, but there are some error: Type="StartupFailure" ID="0000000000000000" phase="ConnectToCluster" timeout="120".... l don't know if l missed some key steps

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants