Browse Source

Gancio docker for Estibadores

Siroco 3 months ago
commit
cacdffee91
Signed by: siroco GPG Key ID: 1324098302A514B0
  1. 2
      .env.sample
  2. 2
      .gitignore
  3. 97
      Dockerfile
  4. 19
      README.md
  5. 20
      config.json.sample
  6. 16
      docker-compose.yml
  7. 13
      entrypoint.sh

2
.env.sample

@ -0,0 +1,2 @@
GANCIO_DATA_PATH="./data"
GANCIO_PORT=13120

2
.gitignore

@ -0,0 +1,2 @@
data/db.sqlite
data/config.json

97
Dockerfile

@ -0,0 +1,97 @@
## ARGUMENTOS:
## GANCIO_VERSION tag/rama desde la que se construye gancio (defecto: master)
## GANCIO_UID uid (identificador numerico) de la usuaria que ejecutara gancio (defecto: 110)
## Etapa 1: COMPILACION de Gancio
##
## - Descarga codigo de Framagit.org
## - Compila la libreria Gancio
## - Dependencias: nodejs + yarn
##
FROM registry.sindominio.net/debian
## TEMPORAL para evitar el fallo al compilar
RUN sed -i "3d" /etc/apt/sources.list
RUN apt-get update && \
apt-get install -y --no-install-recommends curl gnupg2 ca-certificates git
# Instalar Node Latest
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - && \
apt-get install -y nodejs
WORKDIR /opt
ARG GANCIO_VERSION=master
RUN echo "deb http://deb.debian.org/debian buster-backports main" >> /etc/apt/sources.list && \
echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list && \
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
# Instalar Yarn
RUN apt-get update && \
apt-get install -y --no-install-recommends yarn
# Clonar codigo de Gancio
RUN git clone https://framagit.org/les/gancio.git
WORKDIR /opt/gancio
RUN git checkout $GANCIO_VERSION
# Aplicar parches
#COPY patches patches
#RUN git apply patches/*.patch
# Instalar dependencias de desarrollo, compilar y empaquetar
RUN yarn install && \
yarn build && \
yarn pack --filename=gancio.tgz
## 2da Etapa: EJECUCION de Gancio
##
## - Usa la libreria Gancio compilada antes
## - Instala todas las dependencias de produccion
## - Crea un link en /usr/local/bin/gancio
## - Dependencias: nodejs
##
FROM registry.sindominio.net/debian
## TEMPORAL para evitar el fallo al compilar
RUN sed -i "3d" /etc/apt/sources.list
RUN apt-get update && \
apt-get install -y --no-install-recommends curl gnupg2 ca-certificates git
# Instalar Node Latest
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - && \
apt-get install -y nodejs
# Copiar y descomprimir el servicio de Gancio compilado en 1ra Etapa
COPY --from=0 /opt/gancio/gancio.tgz ./
RUN tar zxf gancio.tgz && \
mv package /opt/gancio && \
rm gancio.tgz
WORKDIR /opt/gancio
# Instalar solo las dependencias de produccion y crear symlink para ejecucion
RUN npm install --production && \
ln -s /gancio/server/cli.js /usr/local/bin/gancio
# Crear usuaria gancio para ejecutar el servicio
# NOTE: Voy a probar de lanzarlo desdel el docker-compose
#ARG GANCIO_UID=110
#RUN useradd -u $GANCIO_UID -g nogroup gancio
# Compiar el script de entrada del repo y ejecutar
ADD entrypoint.sh /
RUN chmod 750 /entrypoint.sh
ENTRYPOINT [ "/bin/sh", "/entrypoint.sh" ]

19
README.md

@ -0,0 +1,19 @@
# Gancio
A shared agenda for local communities
https://gancio.org
Docker version based on https://git.sindominio.net/gancio/docker-gancio
* Change user $UID:GID on docker-compose.yml
* Copy _.env.sample_ to .env and change config
* Directories _data_ and _uploads_ precreated
Temporaly execute configurator after:
```
$ docker-compose run --rm gancio-kartzela gancio setup --docker --db=sqlite
```

20
config.json.sample

@ -0,0 +1,20 @@
{
"title": "Gancio",
"baseurl": "http://localhost:13120",
"secret": "uw07xdmw2dh0ucnuy6bkwz",
"admin_email": "gancio@localhost",
"smtp": {
"host": "localhost",
"port": 25
},
"server": {
"host": "localhost",
"port": 13120
},
"db": {
"dialect": "sqlite",
"storage": "/opt/gancio/db.sqlite",
"logging": false
},
"upload_path": "/opt/gancio/uploads"
}

16
docker-compose.yml

@ -0,0 +1,16 @@
version: '3'
services:
gancio:
build: .
image: gancio:latest
restart: always
container_name: gancio
user: 114:65534
command: gancio start --docker --db=sqlite
volumes:
- ./data/db.sqlite:/opt/gancio/db.sqlite
- ./data/config.json:/opt/gancio/config.json
- ./uploads:/opt/gancio/uploads
ports:
- "127.0.0.1:13120:13120"

13
entrypoint.sh

@ -0,0 +1,13 @@
#!/bin/bash
# verifica que exista un archivo de configuracion
[ -f /opt/gancio/config.json ] || { echo 'falta el archivo de configuracion config.json'; exit 1; }
# si no existe, crea la base de datos sqlite
[ -f /opt/gancio/db.sqlite ] || touch /opt/gancio/db.sqlite
# recupera permisos a nombre de la usuaria gancio
#chown -R gancio:nogroup /opt/gancio
# ejecuta el Command pasado al docker, como usuaria gancio
su gancio --command="$@"
Loading…
Cancel
Save