Skip to content

Commit 2b45a0b

Browse files
Merge pull request #35 from bufferoverflow/refactor/docker-multistage-build
refactor(dockerfile): builder multistage pattern & random uid user support
2 parents 71d562f + 6edd701 commit 2b45a0b

File tree

3 files changed

+25
-31
lines changed

3 files changed

+25
-31
lines changed

Dockerfile

+20-27
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,34 @@
1-
FROM node:10-alpine
2-
LABEL maintainer="https://github.com/bufferoverflow/verdaccio-gitlab"
3-
4-
RUN apk --no-cache add wget openssl dumb-init && \
5-
apk del openssl
6-
7-
ENV APPDIR /usr/local/app
1+
FROM node:10-alpine as builder
82

9-
WORKDIR $APPDIR
3+
WORKDIR /opt/verdaccio-gitlab-build
4+
COPY . .
105

11-
ADD . $APPDIR
6+
ENV NODE_ENV=production \
7+
VERDACCIO_BUILD_REGISTRY=https://registry.npmjs.org/
128

13-
ENV NODE_ENV=production
14-
15-
RUN npm config set registry https://registry.npmjs.org/ && \
9+
RUN yarn config set registry $VERDACCIO_BUILD_REGISTRY && \
1610
yarn install --production=false && \
1711
yarn build && \
1812
yarn cache clean && \
19-
yarn install --production=true --pure-lockfile && \
20-
yarn add file:.
21-
22-
RUN mkdir -p /verdaccio/storage /verdaccio/conf
13+
yarn install --production=true --pure-lockfile
2314

24-
ADD docker-verdaccio-gitlab.config.yaml /verdaccio/conf/config.yaml
2515

26-
RUN addgroup -S verdaccio && adduser -S -G verdaccio verdaccio && \
27-
chown -R verdaccio:verdaccio "$APPDIR" && \
28-
chown -R verdaccio:verdaccio /verdaccio
2916

30-
USER verdaccio
17+
FROM verdaccio/verdaccio:4.x-next
18+
LABEL maintainer="https://github.com/bufferoverflow/verdaccio-gitlab"
3119

32-
ENV PORT 4873
33-
ENV PROTOCOL http
20+
# Go back to root to be able to install the plugin
21+
USER root
3422

35-
EXPOSE $PORT
23+
COPY --from=builder /opt/verdaccio-gitlab-build/lib /opt/verdaccio-gitlab/lib
24+
COPY --from=builder /opt/verdaccio-gitlab-build/package.json /opt/verdaccio-gitlab/package.json
25+
COPY --from=builder /opt/verdaccio-gitlab-build/node_modules /opt/verdaccio-gitlab/node_modules
3626

37-
VOLUME ["/verdaccio"]
27+
ADD conf/docker.yaml /verdaccio/conf/config.yaml
3828

39-
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
29+
# Inherited from parent image
30+
WORKDIR $VERDACCIO_APPDIR
31+
RUN ln -s /opt/verdaccio-gitlab/lib /verdaccio/plugins/verdaccio-gitlab
4032

41-
CMD $APPDIR/node_modules/.bin/verdaccio --config /verdaccio/conf/config.yaml --listen $PROTOCOL://0.0.0.0:${PORT}
33+
# Inherited from parent image
34+
USER $VERDACCIO_USER_UID

docker-verdaccio-gitlab.config.yaml renamed to conf/docker.yaml

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
storage: /verdaccio/storage
1+
storage: /verdaccio/storage/data
2+
3+
plugins: /verdaccio/plugins
24

35
listen:
46
- 0.0.0.0:4873

docker-compose.yml

+2-3
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,19 @@ services:
1515
- gitlab-data:/var/opt/gitlab
1616

1717
verdaccio:
18-
image: verdaccio/verdaccio
1918
restart: always
2019
ports:
2120
- '4873:4873'
2221
build:
2322
context: .
2423
dockerfile: Dockerfile
2524
volumes:
26-
- verdaccio:/verdaccio
25+
- verdaccio-storage:/verdaccio/storage
2726
links:
2827
- gitlab
2928

3029
volumes:
3130
gitlab-config:
3231
gitlab-log:
3332
gitlab-data:
34-
verdaccio:
33+
verdaccio-storage:

0 commit comments

Comments
 (0)