Skip to content
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

Add infinit. #919

Closed
wants to merge 4 commits into from
Closed

Add infinit. #919

wants to merge 4 commits into from

Conversation

Dimrok
Copy link

@Dimrok Dimrok commented Jun 1, 2017

Add infinit documentation to the official images documentation (see docker-library/official-images#3005)

Copy link
Member

@tianon tianon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks generally OK, just a few notes so far. 👍


On UNIX-based systems, Infinit uses `FUSE` to provide mount points. Hence, for UNIX-based containers, you need `FUSE` installed on your host (see Infinit's [get-started page](https://infinit.sh/get-started#installation)) and run Docker in privileged mode (`--privileged`).

docker run --privileged -e INFINIT_USER=$USER -v ~/.local/share/infinit:/root/.local/share/infinit --rm infinit # volume mount --name <VOLUME> --mountpoint <DIRECTORY>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For using FUSE inside a container, I think --privileged is a bit overkill (since it essentially allows all privileges of the host, instead of the strictly-necessary subset). Can we trim this down to just the subset necessary? I'd imagine something like --cap-add SYS_ADMIN --device /dev/fuse is probably pretty close to the actual set required.


##### Others (object, block, etc.)

At current version (0,7.3), the single logic exposed is the distributed file system but more logics will be added in the upcoming releases, such as an object storage logic, a block device logic and various interfaces for them.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor typo: 0,7.3 vs 0.7.3

@@ -0,0 +1 @@
http://github.com/infinit/infinit-docker
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you swap this to use https please? (it'll redirect, but better to be explicit IMO)

@@ -0,0 +1 @@
View [license information](https://www.infinit.sh/licenses/infinit.txt) for the software contained in this image.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This URL appears to be a 404. 😕

image

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Waiting for the website to be deployed.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

@@ -0,0 +1,67 @@
Infinit’s storage platform transforms commodity servers into multiple flexible, scalable, secure and fault-tolerant storage logics tailored to your applications.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You probably want to include an h1 header above this, something like # Infinit or # What is Infinit? (similar to other images) or else this block will combine with the block in the template above it. If you run ./update.sh infinit it should generate infinit/README.md which you can then use to get an idea for how your generated content is going to flow (just don't commit that generated file -- we've got a bot that'll update it automatically after merge).

Also, that logo.png that's included here will only show up if %%LOGO%% is used somewhere here in the body. In other descriptions, we usually put it right after this initial "what is XYZ?" paragraph, but some maintainers prefer to list it either earlier or later -- it's really up to you. 👍

Copy link
Member

@yosifkit yosifkit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requesting a few clarifications.


### Using your user

By default, Infinit uses the current user, `root` when running on a container. If you want to use your local user name, you can set the INFINIT_USER environment variable.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line is a bit confusing. Does infinit use "the current user" or is it "root" "when running on a container"?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does the INFINIT_USER environment variable do? If I pass in my linux username, it is not going to mean anything inside the container since it does not have my /etc/passwd to get a user id.


On UNIX-based systems, Infinit uses `FUSE` to provide mount points. Hence, for UNIX-based containers, you need `FUSE` installed on your host (see Infinit's [get-started page](https://infinit.sh/get-started#installation)) and run Docker with specific options (`--cap-add SYS_ADMIN --device /dev/fuse`).

docker run --cap-add SYS_ADMIN --device /dev/fuse -e INFINIT_USER=$USER -v ~/.local/share/infinit:/root/.local/share/infinit --rm infinit volume mount --name <VOLUME> --mountpoint <DIRECTORY>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like this docker run would use a share that was already created (--name) and mount it at --mountpoint; would this be available only for that container or is the mount point relative to the host mount namespace?

How would someone relate this to using infinit as a volume plugin: https://infinit.sh/documentation/docker/volume-plugin? I anticipate that this is what most people will want to use the image for, so it would be nice if there was a clear step-by-step process to go from "nothing" to "my swarm has access to share volumes via infinit".

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe it would need to mention where the silos are stored (/var/storage/infinit/) so that the inifinit plugin container will use the same local directory (-v /path/to/storage/:/var/storage/infinit/)?

Copy link
Author

@Dimrok Dimrok Jul 25, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like this docker run would use a share that was already created (--name) and mount it at --mountpoint; would this be available only for that container or is the mount point relative to the host mount namespace?

The example uses a configuration folder (<blabl>/share/infinit) shared between the host and the container but the mountpoint will be available only for the container (but actually accessible somewhere hidden on the host like /run/user/0/infinit/filesystem/mnt/<xxx>). However everybody mounting the same volume elsewhere will have access to the same 'volume' and share data with the container.

[...] "my swarm has access to share volumes via infinit".

About swarm, because some options (privileged, add-cap, etc.) available for docker run are not available for docker service, this is not possible (yet?) to create fuse mount points in a swarm.

However, I guess I can write something about the infinit deamon in a container used by other containers.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess what I meant was making it a volume plugin on Docker and did not realize that plugins didn't work on swarm... until this next release!

So, it looks like volume plugins will work on swarm:

So, 17.07.0-ce-rc1 and above will work for running this as a volume plugin on a swarm. And I think an example or link to getting it to work as a plugin on a single docker would help users immensely.

Thanks!

@Dimrok
Copy link
Author

Dimrok commented Aug 21, 2017 via email

@tianon
Copy link
Member

tianon commented May 21, 2018

Any update on the comments here? 🙏 ❤️

@yosifkit
Copy link
Member

yosifkit commented Feb 4, 2019

Closing since image PR is closed: docker-library/official-images#3005

@yosifkit yosifkit closed this Feb 4, 2019
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

Successfully merging this pull request may close these issues.

None yet

3 participants