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

docker: run chown on Elasticsearch directory #55

Merged
merged 1 commit into from
Nov 28, 2018

Conversation

orangejulius
Copy link
Member

With Elasticsearch 5, proper permissions (by default for user 1000) must
be set on the data directory on the host system.

Users have consistently run the pelias helper script as users with a
different UID than 1000, or the one configured in .env (usually root),
so this change uses chown to set ownership of the Elasticsearch data
directory.

Connects #33
Connects #53

With Elasticsearch 5, proper permissions (by default for user 1000) must
be set on the data directory on the host system.

Users have consistently run the `pelias` helper script as users with a
different UID than 1000, or the one configured in `.env` (usually root),
so this change uses `chown` to set ownership of the Elasticsearch data
directory.

Connects #33
This was referenced Nov 26, 2018
@jeremy-rutman
Copy link
Contributor

i can attempt to test this as soon as i have some info out of my freshly-working pelias install from master - i dont have enough disk right now to do both

@orangejulius
Copy link
Member Author

This worked well for us in our automated builds, and looks safe enough.

@orangejulius orangejulius merged commit f724720 into master Nov 28, 2018
@jeremy-rutman
Copy link
Contributor

this worked for me as well - after changing ownership to root:root for my data dir the pelias elastic start and pelias elastic wait etc. went through fine

@orangejulius orangejulius deleted the chown-elastic-dir branch December 17, 2018 15:52
orangejulius added a commit that referenced this pull request Jan 16, 2019
In #55 we added a `chown` line that
attempts to set proper permissions on the Elasticsearch data directory.

`chown` can generally only be run as root, so this PR adds handling for
the common case where `chown` fails.

In general, either the pelias CLI is run as root, and the `chown` will
succeed, or the CLI is run as the same user the Docker container
processes will run as. In this case the `mkdir` on the preceeding line
will set up the directory with proper ownership.

We can't really do anything in an automated way to handle people running
the Pelias CLI as a different, non-root, user than the one they want the
containers to run with, so I think this is the best we can do.

This will be even more useful once #62 is merged.
orangejulius added a commit that referenced this pull request Jan 16, 2019
In #55 we added a `chown` line that
attempts to set proper permissions on the Elasticsearch data directory.

`chown` can generally only be run as root, so this PR adds handling for
the common case where `chown` fails.

In general, either the pelias CLI is run as root, and the `chown` will
succeed, or the CLI is run as the same user the Docker container
processes will run as. In this case the `mkdir` on the preceding line
will set up the directory with proper ownership.

We can't really do anything in an automated way to handle people running
the Pelias CLI as a different, non-root, user than the one they want the
containers to run with, so I think this is the best we can do.

This will be even more useful once #62 is merged.
orangejulius added a commit that referenced this pull request Mar 5, 2019
If the Elasticsearch datadir is not owned by the user specified in
$DOCKER_USER, Elasticsearch will fail to start.

Since #55 the helper scripts
attempt to remedy this situation if the `pelias` script is run as root
(which is not recommended but is often done).

However, if the `pelias` script is not run as root and the permissions
are incorrect, this situation cannot be automatically fixed.
command is run to update those permissions.

This code attempts to detect that case and recommend the proper command
to fix it.

Connects #31
Connects #73
orangejulius added a commit that referenced this pull request Mar 5, 2019
If the Elasticsearch datadir is not owned by the user specified in
$DOCKER_USER, Elasticsearch will fail to start.

Since #55 the helper scripts
attempt to remedy this situation if the `pelias` script is run as root
(which is not recommended but is often done).

However, if the `pelias` script is not run as root and the permissions
are incorrect, this situation cannot be automatically fixed.

This code attempts to detect that case and recommend the proper command
to run (with sudo) and set proper directory permissions.

Connects #31
Connects #73
orangejulius added a commit that referenced this pull request Mar 5, 2019
If the Elasticsearch datadir is not owned by the user specified in
$DOCKER_USER, Elasticsearch will fail to start.

Since #55 the helper scripts
attempt to remedy this situation if the `pelias` script is run as root
(which is not recommended but is often done).

However, if the `pelias` script is not run as root and the permissions
are incorrect, this situation cannot be automatically fixed.

This code attempts to detect that case and recommend the proper command
to run (with sudo) and set proper directory permissions.

Connects #31
Connects #73
orangejulius added a commit that referenced this pull request Mar 5, 2019
If the Elasticsearch datadir is not owned by the user specified in
$DOCKER_USER, Elasticsearch will fail to start.

Since #55 the helper scripts
attempt to remedy this situation if the `pelias` script is run as root
(which is not recommended but is often done).

However, if the `pelias` script is not run as root and the permissions
are incorrect, this situation cannot be automatically fixed.

This code attempts to detect that case and recommend the proper command
to run (with sudo) and set proper directory permissions.

Connects #31
Connects #73
orangejulius added a commit that referenced this pull request Mar 6, 2019
If the Elasticsearch datadir is not owned by the user specified in
$DOCKER_USER, Elasticsearch will fail to start.

Since #55 the helper scripts
attempt to remedy this situation if the `pelias` script is run as root
(which is not recommended but is often done).

However, if the `pelias` script is not run as root and the permissions
are incorrect, this situation cannot be automatically fixed.

This code attempts to detect that case and recommend the proper command
to run (with sudo) and set proper directory permissions.

Connects #31
Connects #73
orangejulius added a commit that referenced this pull request Mar 6, 2019
If the Elasticsearch datadir is not owned by the user specified in
$DOCKER_USER, Elasticsearch will fail to start.

Since #55 the helper scripts
attempt to remedy this situation if the `pelias` script is run as root
(which is not recommended but is often done).

However, if the `pelias` script is not run as root and the permissions
are incorrect, this situation cannot be automatically fixed.

This code attempts to detect that case and recommend the proper command
to run (with sudo) and set proper directory permissions.

Connects #31
Connects #73
orangejulius added a commit that referenced this pull request Sep 15, 2020
If the Elasticsearch datadir is not owned by the user specified in
$DOCKER_USER, Elasticsearch will fail to start.

Since #55 the helper scripts
attempt to remedy this situation if the `pelias` script is run as root
(which is not recommended but is often done).

However, if the `pelias` script is not run as root and the permissions
are incorrect, this situation cannot be automatically fixed.

This code attempts to detect that case and recommend the proper command
to run (with sudo) and set proper directory permissions.

Connects #31
Connects #73
calpb pushed a commit to sorelle/docker that referenced this pull request Mar 29, 2021
docker: run chown on Elasticsearch directory
calpb pushed a commit to sorelle/docker that referenced this pull request Mar 29, 2021
In pelias#55 we added a `chown` line that
attempts to set proper permissions on the Elasticsearch data directory.

`chown` can generally only be run as root, so this PR adds handling for
the common case where `chown` fails.

In general, either the pelias CLI is run as root, and the `chown` will
succeed, or the CLI is run as the same user the Docker container
processes will run as. In this case the `mkdir` on the preceding line
will set up the directory with proper ownership.

We can't really do anything in an automated way to handle people running
the Pelias CLI as a different, non-root, user than the one they want the
containers to run with, so I think this is the best we can do.

This will be even more useful once pelias#62 is merged.
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

2 participants