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]>

more image-build-2

Signed-off-by: Scott J Dickerson <[email protected]>
  • Loading branch information
sjd78 committed Sep 4, 2024
1 parent fb54d8c commit e10ff31
Show file tree
Hide file tree
Showing 6 changed files with 104 additions and 2 deletions.
16 changes: 14 additions & 2 deletions .github/workflows/image-build-2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,22 @@ env:

# pre_build_cmd: |
# echo "registry=\"http://localhost:4873\"" >> .npmrc
# pre_build_cmd: |
# echo "registry=https://npm.pkg.github.com" >> .npmrc
# echo "registry=\"http://host.containers.internal:4873\"" >> .npmrc
# echo "registry=\"http://host.docker.internal:4873\"" >> .npmrc

jobs:
# fill-cache:
# runs-on: ubuntu-latest

# # setup a npm mirror server so multiple npm installs can share fetches
# services:
# npm-mirror:
# image: verdaccio/verdaccio:5
# ports:
# - 4873:4873
# volumes:
# -

build:
runs-on: ubuntu-latest

Expand Down
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 e10ff31

Please sign in to comment.