Commit b66fb06e authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Renueva imagen Docker, ahora funcional

Omite dependencias de desarrollo al instalar dependencias con yarn (en
lugar de npm) de forma forzosa, debido a un bug que parece afectar tanto
a yarn como npm (evaluan las devDependencies aunque se indique la
instalación en modo producción).

Actualiza a última versión menor de imagen base.

Reorganiza Dockerfile para optimizar el proceso.

Incluye fichero yarn.lock en compilado, para acelerar la instalación y
asegurar las versiones instaladas.

Omite el paso de puerto mediante argumentos de construcción de imagen.
De esta manera, se evita la sobreescritura de entrypoint para resolver
variables en los parámetros de ejecución.
parent ec23f64e
Loading
Loading
Loading
Loading
+12 −13
Original line number Diff line number Diff line
ARG NODE_IMAGE_TAG=18.0.0-alpine3.15
ARG NODE_IMAGE_TAG=18.1.0-alpine3.15

FROM node:${NODE_IMAGE_TAG}

LABEL maintainer="info@redmic.es"

ARG PORT=3050
ARG DIRPATH=/redmic
EXPOSE 3050

HEALTHCHECK --interval=30s --timeout=15s --start-period=1m --retries=3 \
	CMD wget --spider -q http://localhost:3050 || exit 1

EXPOSE ${PORT}
CMD ["app", "-b"]

ENV PORT=${PORT}
ARG DIRPATH=/redmic

WORKDIR ${DIRPATH}

ADD dist*.tar.gz ./

RUN npm install --production

HEALTHCHECK --interval=30s --timeout=15s --start-period=1m --retries=3 \
	CMD wget --spider -q http://localhost:${PORT} || exit 1

ENTRYPOINT ["/bin/sh"]

CMD ["-c", "node app -b -p ${PORT}"]
RUN node -e 'const fs = require("fs"); const pkg = JSON.parse(fs.readFileSync("./package.json", "utf-8")); delete pkg.devDependencies; fs.writeFileSync("./package.json", JSON.stringify(pkg), "utf-8");' && \
	yarn install --production --ignore-optional --ignore-scripts && \
	yarn cache clean && \
	yarn autoclean --init && yarn autoclean --force && \
	rm -f yarn.lock .yarnclean
+2 −2
Original line number Diff line number Diff line
NODE_IMAGE_TAG=18.0.0-alpine3.15
PORT=3050
NODE_IMAGE_TAG=18.1.0-alpine3.15
DIRPATH=/redmic

PORT=3050
OAUTH_URL=https://api.domain/oauth
OAUTH_CLIENT_SECRET=secret
API_URL=https://api.domain
+0 −1
Original line number Diff line number Diff line
@@ -8,7 +8,6 @@ services:
      dockerfile: ${DOCKERFILE:-Dockerfile}
      args:
        NODE_IMAGE_TAG:
        PORT:
        DIRPATH:
    environment:
      OAUTH_URL:
+1 −1
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ module.exports = function(grunt) {
			},
			command: [
				'version=$(node -p "require(\'./package.json\').version")',
				'tar -acf dist-v$version.tar.gz dist/ views/ app/ package.json'
				'tar -acf dist-v$version.tar.gz dist/ views/ app/ package.json yarn.lock'
			].join('; ')
		});