plantillas-backend/Dockerfile

89 lines
2.7 KiB
Docker

FROM node:12.14.1-stretch-slim
ARG TINI_VERSION=v0.19.0
LABEL maintainer="Carlos Remuzzi cremuzzi@agetic.gob.bo"
LABEL org.label-schema.description="Backend del sistema de plantillas de AGETIC"
LABEL org.label-schema.name="plantillas-backend"
LABEL org.label-schema.schema-version="1.0"
LABEL org.label-schema.vcs-ref=$GITLAB_SHA
LABEL org.label-schema.vcs-url="https://gitlab.softwarelibre.gob.bo/agetic/plantillas/plantillas-backend"
LABEL org.label-schema.vendor="AGETIC"
ENV BACKEND_PUERTO=8000 \
CITE_DIGITOS=5 \
CITE_GUIA=ENTIDAD \
CONFIG_JSON_PATH=/home/node/app/src/config/config.json.sample \
CONFIG_JS_PATH=/home/node/app/src/config/config.js.sample \
CORREO_HOST=localhost \
CORREO_IGNORETLS=false \
CORREO_ORIGEN=ejemplo@correo.gob.bo \
CORREO_PUERTO=25 \
CORREO_REMITENTE=Nombre-del-Remitente \
CORREO_SECURE=false \
CORREO_TLS_RECHAZAR=false \
DB_HOST=plantillas_db \
DB_NOMBRE=plantillas \
DB_PASSWORD=plantillas \
DB_PUERTO=5432 \
DB_USUARIO=plantillas \
DOCUMENTO_GET=false \
HOST_BACKEND=0.0.0.0 \
HOST_FRONTEND=0.0.0.0 \
IDENTIFICADOR_DIRECCION_UNIDAD=2 \
IDENTIFICADOR_DIRECTOR=2 \
JWT_SECRET=esta-cadena-tiene-que-ser-modificada-en-produccion \
JWT_SESSION=false \
JWT_TIEMPO=60 \
LDAP_BIND_DN=cn=admin,dc=entidad,dc=gob,dc=bo \
LDAP_BIND_PASSWORD=admin \
LDAP_SEARCHBASE=ou=usuarios,dc=entidad,dc=gob,dc=bo \
LDAP_URL=ldaps://ldap.example.abc:1234 \
NODE_ENV=production \
NOTIFICACION_CORREO_TOKEN=correo-token \
NOTIFICACION_CORREO_URL=http://192.168.1.2/correo \
NOTIFICACION_SMS_TOKEN=sms-token \
NOTIFICACION_SMS_URL=http://192.168.1.2/sms \
RUTA_ARCHIVOS_EXTERNOS=./public/externos/ \
RUTA_DOCUMENTOS=./public/documentos/
RUN apt-get update \
&& mkdir -p /usr/share/man/man1 \
&& apt-get install --no-install-recommends -y \
build-essential \
curl \
openjdk-8-jre-headless \
python \
&& npm install -g \
pg \
pg-hstore \
sequelize \
sequelize-cli \
&& curl -fsL https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini -o /usr/local/bin/tini \
&& chmod +x /usr/local/bin/tini \
&& mkdir /home/node/app \
&& chown -R node:node /home/node/app
WORKDIR /home/node/app
USER node
COPY --chown=node:node package.json .
COPY --chown=node:node ./parches/ ./parches/
RUN npm i \
&& npm run parchar
COPY --chown=node:node . .
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
COPY --chown=node:node seeder.sh /home/node/app/seeder.sh
VOLUME ["/home/node/app/public"]
EXPOSE 8000
ENTRYPOINT ["/usr/local/bin/tini","--","/usr/local/bin/entrypoint.sh"]
CMD ["node","index.js"]