usuario-gancio #2

Closed
matus wants to merge 5 commits from usuario-gancio into master
matus commented 2 years ago
Collaborator

objetivo:

  • ejecutar gancio como un usuario no-root

para esto, hemos creado un usuario especifico dentro del docker de Gancio.

como dependemos de archivos en el host para la ejecuciond de gancio (ej: config.json, db.sqlite), necesitamos que estos archivos esten accesibles al user de gancio DENTRO del docker

para esto, creamos un 2do docker, con el mismo usuario de gancio, que nos permitira ejecutar comandos como root. ejecutaremos este nuevo docker siempre antes de inciar gancio, para asegurarnos de devolver los permisos de los archivos del host al user de gancio.

objetivo: - ejecutar gancio como un usuario no-root para esto, hemos creado un usuario especifico dentro del docker de Gancio. como dependemos de archivos en el host para la ejecuciond de gancio (ej: config.json, db.sqlite), necesitamos que estos archivos esten accesibles al user de gancio DENTRO del docker para esto, creamos un 2do docker, con el mismo usuario de gancio, que nos permitira ejecutar comandos como root. ejecutaremos este nuevo docker siempre antes de inciar gancio, para asegurarnos de devolver los permisos de los archivos del host al user de gancio.
matus added 5 commits 2 years ago
Owner

Te propongo una nueva forma,
y es reorganizando el volumen dentro de un directorio especifico con permisos de ese usuario.
Añadimos los ficheros de config y sqlite oportunos dentro del directorio y lo asignamos como volumen para /opt/gancio de tal manera que ahora, el setup debería funcionar sin problemas porque esa carpeta tiene los permisos para que el usuario que ejecuta gancio pueda esribir y modificar.
Acabo de hacer un PULL en la rama master con esas modificaciones, a ver si te parece bien.

Te propongo una nueva forma, y es reorganizando el volumen dentro de un directorio especifico con permisos de ese usuario. Añadimos los ficheros de config y sqlite oportunos dentro del directorio y lo asignamos como volumen para /opt/gancio de tal manera que ahora, el setup debería funcionar sin problemas porque esa carpeta tiene los permisos para que el usuario que ejecuta gancio pueda esribir y modificar. Acabo de hacer un PULL en la rama master con esas modificaciones, a ver si te parece bien.
Poster
Collaborator

estaba pensando en que el config.json hay que poder generarlo por fuera de gancio, asi el script que haga el despliegue de una nueva instancia puede aportar los valores necearios

ademas, el archivo de config no necesita ser propiedad de la user que ejecuta gancio, siempre que no intentemos cambiar esta config desde la web.

lo que si tiene que ser propiedad de la user ejecutando gancio es el archivo de sqlite. estoy pensando como hacer esto. no veo opciones en el help que me permitan solo generar la base de datos, y cuando ejecuto gancio setup ignora lo que tengo en el config.json y me hace ingresar los datos nuevamente.

mi objetivo seria poder escribir un config.json por fuera de la ejecucion de los docker, y que al iniciar el gancio, se cree la base de datos cuando no la encuentre en el path.

el metodo actual de hacer un chmod al user que ejecuta el docker funciona, solo que requiere que seas root para cambiar el permiso a ese usuario en el host ejecutando dockers ... me gustaria dejarlo de forma que un usuario no root pueda ejecutar los dockers en local ... esoty viendo si podemos tener una db pre-generada para asi iniciar gancio sin tener que pasar por el proceso de setup que requiere de una CLI interactiva

estaba pensando en que el `config.json` hay que poder generarlo por fuera de gancio, asi el script que haga el despliegue de una nueva instancia puede aportar los valores necearios ademas, el archivo de config no necesita ser propiedad de la user que ejecuta gancio, siempre que no intentemos cambiar esta config desde la web. lo que si tiene que ser propiedad de la user ejecutando gancio es el archivo de sqlite. estoy pensando como hacer esto. no veo opciones en el help que me permitan solo generar la base de datos, y cuando ejecuto `gancio setup` ignora lo que tengo en el `config.json` y me hace ingresar los datos nuevamente. mi objetivo seria poder escribir un `config.json` por fuera de la ejecucion de los docker, y que al iniciar el gancio, se cree la base de datos cuando no la encuentre en el path. el metodo actual de hacer un `chmod` al user que ejecuta el docker funciona, solo que requiere que seas root para cambiar el permiso a ese usuario en el host ejecutando dockers ... me gustaria dejarlo de forma que un usuario no root pueda ejecutar los dockers en local ... esoty viendo si podemos tener una db pre-generada para asi iniciar gancio sin tener que pasar por el proceso de setup que requiere de una CLI interactiva
Owner

estaba pensando en que el config.json hay que poder generarlo por fuera de gancio, asi el script que haga el despliegue de una nueva instancia puede aportar los valores necearios

Si es un volumen cargado en la misma carpeta que docker-compose.yml, sería suficiente, accesible y editable según las necesidades.

ademas, el archivo de config no necesita ser propiedad de la user que ejecuta gancio, siempre que no intentemos cambiar esta config desde la web.

Desde la web si que se cambian algunos parámetros, no se si afectan al config, pero por lo común cambias el nombre de la instancia, el idioma, .. aunque eso a lo mejor va direto al SQLite. Pero no es tanto problema ejecutar el docker-compose con el usuario oportuno y ya tendría acceso a ese fichero

lo que si tiene que ser propiedad de la user ejecutando gancio es el archivo de sqlite. estoy pensando como hacer esto. no veo opciones en el help que me permitan solo generar la base de datos, y cuando ejecuto gancio setup ignora lo que tengo en el config.json y me hace ingresar los datos nuevamente.

mi objetivo seria poder escribir un config.json por fuera de la ejecucion de los docker, y que al iniciar el gancio, se cree la base de datos cuando no la encuentre en el path.

el metodo actual de hacer un chmod al user que ejecuta el docker funciona, solo que requiere que seas root para cambiar el permiso a ese usuario en el host ejecutando dockers ... me gustaria dejarlo de forma que un usuario no root pueda ejecutar los dockers en local ... esoty viendo si podemos tener una db pre-generada para asi iniciar gancio sin tener que pasar por el proceso de setup que requiere de una CLI interactiva

En SD eso no es problema,
cargamos los dockers en una maquina que tenemos aceso a root, que incluso se automatiza para que cree un usuari por cada docker y sea ese user el que ejecuta el docker usando la variable del docker-compose user.

Creo que aquí el único punto importante, sería hacer ese config y base datos preparados para que no se tenga que ejecutar el script de arranque o currarse un web UI para poder hacer esos pasos desde la web en vez de hacerlos desde una terminal.

> estaba pensando en que el config.json hay que poder generarlo por fuera de gancio, asi el script que haga el despliegue de una nueva instancia puede aportar los valores necearios Si es un volumen cargado en la misma carpeta que docker-compose.yml, sería suficiente, accesible y editable según las necesidades. > ademas, el archivo de config no necesita ser propiedad de la user que ejecuta gancio, siempre que no intentemos cambiar esta config desde la web. Desde la web si que se cambian algunos parámetros, no se si afectan al config, pero por lo común cambias el nombre de la instancia, el idioma, .. aunque eso a lo mejor va direto al SQLite. Pero no es tanto problema ejecutar el docker-compose con el usuario oportuno y ya tendría acceso a ese fichero > lo que si tiene que ser propiedad de la user ejecutando gancio es el archivo de sqlite. estoy pensando como hacer esto. no veo opciones en el help que me permitan solo generar la base de datos, y cuando ejecuto gancio setup ignora lo que tengo en el config.json y me hace ingresar los datos nuevamente. > mi objetivo seria poder escribir un config.json por fuera de la ejecucion de los docker, y que al iniciar el gancio, se cree la base de datos cuando no la encuentre en el path. > el metodo actual de hacer un chmod al user que ejecuta el docker funciona, solo que requiere que seas root para cambiar el permiso a ese usuario en el host ejecutando dockers ... me gustaria dejarlo de forma que un usuario no root pueda ejecutar los dockers en local ... esoty viendo si podemos tener una db pre-generada para asi iniciar gancio sin tener que pasar por el proceso de setup que requiere de una CLI interactiva En SD eso no es problema, cargamos los dockers en una maquina que tenemos aceso a root, que incluso se automatiza para que cree un usuari por cada docker y sea ese user el que ejecuta el docker usando la variable del docker-compose user. Creo que aquí el único punto importante, sería hacer ese config y base datos preparados para que no se tenga que ejecutar el script de arranque o currarse un web UI para poder hacer esos pasos desde la web en vez de hacerlos desde una terminal.
Poster
Collaborator

hemos deprecado esta solucion en favor de una equivalente que apalanca el entrypoint en la rama gancio-entrypoint

hemos deprecado esta solucion en favor de una equivalente que apalanca el entrypoint en la rama [gancio-entrypoint](https://git.sindominio.net/gancio/docker-gancio/src/branch/gancio-entrypoint)
matus closed this pull request 2 years ago
Please reopen this pull request to perform a merge.
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: gancio/docker-gancio#2
Loading…
There is no content yet.