Skip to content

Commit ed69b62

Browse files
PauloGoncalvesBHPaulo Gonçalves
authored andcommitted

File tree

6 files changed

+23
-23
lines changed

6 files changed

+23
-23
lines changed

.releaserc.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ module.exports = {
106106
'released on ${nextRelease.gitTag}'
107107
]
108108
}],
109-
['@semantic-release/exec', { prepareCmd: `docker build -t ${env.DOCKER_USERNAME}/serverest .` }],
109+
['@semantic-release/exec', { prepareCmd: `docker build -t ${env.DOCKER_USERNAME}/serverest --target prod .` }],
110110
['semantic-release-docker', {
111111
name: `${env.DOCKER_USERNAME}/serverest`
112112
}]

Dockerfile

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,25 @@
1-
FROM node:lts-alpine3.12
1+
FROM node:lts-alpine3.12 as base
22

3-
WORKDIR /usr/src/app
3+
WORKDIR /app
44

55
COPY package*.json ./
66

7-
RUN npm install --production
7+
FROM base as test
8+
9+
RUN apk --no-cache add git=2.26.3-r0 ca-certificates=20191127-r4 wget=1.20.3-r1 bash=5.0.17-r0 \
10+
&& wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \
11+
&& wget -q https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.29-r0/glibc-2.29-r0.apk \
12+
&& apk --no-cache add glibc-2.29-r0.apk \
13+
&& rm -rf /var/cache/apk/*
14+
15+
# hadolint ignore=DL3059
16+
RUN npm ci
17+
18+
COPY . .
19+
20+
FROM base as prod
21+
22+
RUN npm ci --production
823

924
COPY . .
1025

Dockerfile.test

Lines changed: 0 additions & 16 deletions
This file was deleted.

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ NAME_IMAGE=serverest
55
PORT=3000
66

77
build:
8-
@DOCKER_BUILDKIT=1 docker build -t ${NAME_IMAGE}/${NAME_IMAGE} .
8+
@DOCKER_BUILDKIT=1 docker build -t ${NAME_IMAGE}/${NAME_IMAGE} --target prod .
99

1010
build/run: build run
1111

docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ services:
44
base:
55
build:
66
context: .
7-
dockerfile: ./Dockerfile.test
7+
target: test
88
environment:
99
- NODE_ENV=serverest-test
1010
volumes:

test/infra/docker_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ func TestDockerWithHelpFlag(t *testing.T) {
2828
tag := "paulogoncalvesbh/serverest"
2929
buildOptions := &docker.BuildOptions{
3030
Tags: []string{tag},
31+
Target: "prod",
3132
}
3233

3334
// Build the Docker image.
@@ -38,5 +39,5 @@ func TestDockerWithHelpFlag(t *testing.T) {
3839
output := docker.Run(t, tag, opts)
3940

4041
// Assert message printed on docker run
41-
assert.Equal(t, output, "\n> serverest@"+packageJsonVersion()+" start /usr/src/app\n> node ./src/server.js \"--help\"\n\nAjuda do ServeRest\n\nModo de uso: npx serverest <opcao>\n docker run -p 3000:3000 paulogoncalvesbh/serverest <opcao>\n\nOptions:\n -p, --porta Porta que será utilizada (default: 3000) [number]\n -t, --timeout Timeout da autenticação em segundos (default: 600) [number]\n -d, --nodoc Desabilitar o início automático da documentação [boolean]\n -b, --nobearer Não retornar \"Bearer\" no authorization de /login [boolean]\n -s, --nosec Desabilitar os headers de segurança na resposta [boolean]\n -h, --help Show help [boolean]\n -v, --version Show version number [boolean]\n\nExamples:\n npx serverest Utilizar porta e timeout padrão\n npx serverest --nodoc Documentação não abrirá\n npx serverest --timeout 3600 Token de autenticação terá 1h de duração\n npx serverest --porta 3500 Será iniciado na porta 3500\n npx serverest -s -p 4200 -t 120 -b É possível combinar as opções\n\nAcesse serverest.dev para ver as rotas disponíveis\nPrecisa de ajuda?\nAbra uma issue em github.com/ServeRest/ServeRest/issues")
42+
assert.Equal(t, output, "\n> serverest@"+packageJsonVersion()+" start /app\n> node ./src/server.js \"--help\"\n\nAjuda do ServeRest\n\nModo de uso: npx serverest <opcao>\n docker run -p 3000:3000 paulogoncalvesbh/serverest <opcao>\n\nOptions:\n -p, --porta Porta que será utilizada (default: 3000) [number]\n -t, --timeout Timeout da autenticação em segundos (default: 600) [number]\n -d, --nodoc Desabilitar o início automático da documentação [boolean]\n -b, --nobearer Não retornar \"Bearer\" no authorization de /login [boolean]\n -s, --nosec Desabilitar os headers de segurança na resposta [boolean]\n -h, --help Show help [boolean]\n -v, --version Show version number [boolean]\n\nExamples:\n npx serverest Utilizar porta e timeout padrão\n npx serverest --nodoc Documentação não abrirá\n npx serverest --timeout 3600 Token de autenticação terá 1h de duração\n npx serverest --porta 3500 Será iniciado na porta 3500\n npx serverest -s -p 4200 -t 120 -b É possível combinar as opções\n\nAcesse serverest.dev para ver as rotas disponíveis\nPrecisa de ajuda?\nAbra uma issue em github.com/ServeRest/ServeRest/issues")
4243
}

0 commit comments

Comments
 (0)