diff --git a/Dockerfile b/Dockerfile index 178ee9c..efcccd8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,41 +1,34 @@ -FROM node:10-alpine -LABEL maintainer="https://github.com/bufferoverflow/verdaccio-gitlab" - -RUN apk --no-cache add wget openssl dumb-init && \ - apk del openssl - -ENV APPDIR /usr/local/app +FROM node:10-alpine as builder -WORKDIR $APPDIR +WORKDIR /opt/verdaccio-gitlab-build +COPY . . -ADD . $APPDIR +ENV NODE_ENV=production \ + VERDACCIO_BUILD_REGISTRY=https://registry.npmjs.org/ -ENV NODE_ENV=production - -RUN npm config set registry https://registry.npmjs.org/ && \ +RUN yarn config set registry $VERDACCIO_BUILD_REGISTRY && \ yarn install --production=false && \ yarn build && \ yarn cache clean && \ - yarn install --production=true --pure-lockfile && \ - yarn add file:. - -RUN mkdir -p /verdaccio/storage /verdaccio/conf + yarn install --production=true --pure-lockfile -ADD docker-verdaccio-gitlab.config.yaml /verdaccio/conf/config.yaml -RUN addgroup -S verdaccio && adduser -S -G verdaccio verdaccio && \ - chown -R verdaccio:verdaccio "$APPDIR" && \ - chown -R verdaccio:verdaccio /verdaccio -USER verdaccio +FROM verdaccio/verdaccio:4.x-next +LABEL maintainer="https://github.com/bufferoverflow/verdaccio-gitlab" -ENV PORT 4873 -ENV PROTOCOL http +# Go back to root to be able to install the plugin +USER root -EXPOSE $PORT +COPY --from=builder /opt/verdaccio-gitlab-build/lib /opt/verdaccio-gitlab/lib +COPY --from=builder /opt/verdaccio-gitlab-build/package.json /opt/verdaccio-gitlab/package.json +COPY --from=builder /opt/verdaccio-gitlab-build/node_modules /opt/verdaccio-gitlab/node_modules -VOLUME ["/verdaccio"] +ADD conf/docker.yaml /verdaccio/conf/config.yaml -ENTRYPOINT ["/usr/bin/dumb-init", "--"] +# Inherited from parent image +WORKDIR $VERDACCIO_APPDIR +RUN ln -s /opt/verdaccio-gitlab/lib /verdaccio/plugins/verdaccio-gitlab -CMD $APPDIR/node_modules/.bin/verdaccio --config /verdaccio/conf/config.yaml --listen $PROTOCOL://0.0.0.0:${PORT} +# Inherited from parent image +USER $VERDACCIO_USER_UID diff --git a/docker-verdaccio-gitlab.config.yaml b/conf/docker.yaml similarity index 88% rename from docker-verdaccio-gitlab.config.yaml rename to conf/docker.yaml index d9751b6..cb5f79c 100644 --- a/docker-verdaccio-gitlab.config.yaml +++ b/conf/docker.yaml @@ -1,4 +1,6 @@ -storage: /verdaccio/storage +storage: /verdaccio/storage/data + +plugins: /verdaccio/plugins listen: - 0.0.0.0:4873 diff --git a/docker-compose.yml b/docker-compose.yml index 2a590ea..63dcc7c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,7 +15,6 @@ services: - gitlab-data:/var/opt/gitlab verdaccio: - image: verdaccio/verdaccio restart: always ports: - '4873:4873' @@ -23,7 +22,7 @@ services: context: . dockerfile: Dockerfile volumes: - - verdaccio:/verdaccio + - verdaccio-storage:/verdaccio/storage links: - gitlab @@ -31,4 +30,4 @@ volumes: gitlab-config: gitlab-log: gitlab-data: - verdaccio: + verdaccio-storage:

AltStyle によって変換されたページ (->オリジナル) /