
commit
cacdffee91
7 changed files with 169 additions and 0 deletions
@ -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" ] |
@ -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 |
||||
``` |
||||
|
||||
|
@ -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" |
||||
} |
@ -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" |
@ -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…
Reference in new issue