Skip to content

Commit

Permalink
npm-caching-proxy work
Browse files Browse the repository at this point in the history
Signed-off-by: Scott J Dickerson <[email protected]>
  • Loading branch information
sjd78 committed Aug 13, 2024
1 parent 09a2047 commit ab9bdb9
Show file tree
Hide file tree
Showing 5 changed files with 90 additions and 0 deletions.
1 change: 1 addition & 0 deletions hack/npm-caching-proxy/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
storage/
9 changes: 9 additions & 0 deletions hack/npm-caching-proxy/Dockerfile_
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
FROM verdaccio/verdaccio:5

ADD config.yaml /verdaccio/conf/config.yaml

USER root
RUN npm install --global verdaccio-static-token \
&& npm install --global verdaccio-auth-memory

USER $VERDACCIO_USER_UID
20 changes: 20 additions & 0 deletions hack/npm-caching-proxy/build_image.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/bin/bash -xe

#
# Build the project's container image using the npm caching proxy that
# has been setup with run.sh
#

# cd to project root
[[ -e Dockerfile ]] || cd ../..

# TODO: Grab the current project config and replace after the run
npm config set registry "http://host.containers.internal:4873" --location=project
# --env "npm_config_registry=http://host.containers.internal:4873" \

podman build \
--pull \
-t localhost/tackle2-ui:image1 \
.

npm config delete registry --location=project
41 changes: 41 additions & 0 deletions hack/npm-caching-proxy/config/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# See https://github.com/verdaccio/verdaccio/blob/5.x/conf/docker.yaml
# https://verdaccio.org/docs/configuration

storage: /verdaccio/storage/data
plugins: /verdaccio/plugins

web:
title: Verdaccio npm cache
login: false

auth:
htpasswd:
file: /verdaccio/storage/htpasswd
algorithm: bcrypt
max_users: -1

uplinks:
npmjs:
url: https://registry.npmjs.org/

packages:
"@*/*":
access: $all
publish: $authenticated
unpublish: $authenticated
proxy: npmjs

"**":
access: $all
publish: $authenticated
unpublish: $authenticated
proxy: npmjs

server:
keepAliveTimeout: 60

middlewares:
audit:
enabled: true

log: { type: stdout, format: pretty, level: info }
19 changes: 19 additions & 0 deletions hack/npm-caching-proxy/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/bin/bash -xe

#
# userns=keep-id with the uid and gid settings will have podman map
# the uid and gid of the user who runs the container to those uid and
# gid internally so files created on the host belong to the user who
# started the container!
#
podman run \
-it \
--rm \
--name npm-mirror \
--userns=keep-id:uid=10001,gid=65533 \
-p 4873:4873 \
-v ./config:/verdaccio/conf:Z \
-v ./storage:/verdaccio/storage:Z,U \
verdaccio/verdaccio:5 \
$@

0 comments on commit ab9bdb9

Please sign in to comment.