Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
node_modules
.git
2 changes: 2 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,5 @@ test
dist
img
ci
.dockerignore
Dockerfile
14 changes: 14 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Build ipfs-npm from src. Used in test/perf/docker-race.sh
FROM node:10.15.3
MAINTAINER olizilla <[email protected]>

WORKDIR /opt/npm-on-ipfs

# Create a docker cache layer for just the deps. This means less rebuilding if
# only the source code changes
COPY package.json /opt/npm-on-ipfs
RUN npm install --quiet

# Copy the src dir to the image, and add `ipfs-npm` to the PATH.
COPY ./src /opt/npm-on-ipfs/src
RUN npm link
38 changes: 38 additions & 0 deletions test/perf/docker-race.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#!/usr/bin/env bash

# Compare the first install times of a module via npm and ipfs-npm.
# Using Docker here to ensure we are using fresh caches for each run.
#
# Usage:
#
# ./docker-race.sh [npm module]
#
# NOTE: On first run this will create a local image called ipfs-npm, from the
# Dockerfile at the root of this project. To update it with the latest source,
# rebuild the image:
#
# docker build -t ipfs-npm .
#
# or simply delete it and let the script re-build it
#
# docker image rm ipfs-npm -f
#
MODULE=${1:-iim}
IPFS_NPM_IMAGE=ipfs-npm
REFERENCE_IMAGE=node:10.15.3

if $(docker image ls | grep -q $IPFS_NPM_IMAGE)
then
echo "found ipfs-npm Docker image"
else
echo "building docker image for ipfs-npm, this will take a moment"
docker build -t $IPFS_NPM_IMAGE ../../
fi

echo ""
echo "---- ipfs-npm flavour ----"
time docker run $IPFS_NPM_IMAGE ipfs-npm install -g $MODULE

echo ""
echo "---- npm flavour ----"
time docker run $REFERENCE_IMAGE npm install -g $MODULE