Skip to content
Open
Show file tree
Hide file tree
Changes from all 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
39 changes: 39 additions & 0 deletions test/perf/docker-race.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#!/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
#
set -eu
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 $(dirname "$0")/../../
fi

echo ""
echo "---- ipfs-npm flavour ----"
time docker run --rm --net=host $IPFS_NPM_IMAGE ipfs-npm install -g $MODULE

echo ""
echo "---- npm flavour ----"
time docker run --rm --net=host $REFERENCE_IMAGE npm install -g $MODULE