Hi everyone, this project is no longer maintained.
Please use verdaccio/verdaccio and its official Docker Image
Sinopia is a private npm repository server
docker pull keyvanfatehi/sinopia:latest
docker run --name sinopia -d -p 4873:4873 keyvanfatehi/sinopia:latest
npm set registry http://<docker_host>:4873/
docker logs sinopia
There are two ways to modify the configuration.
To understand the difference, view the conversation here: #10
docker stop sinopia
docker run --volumes-from sinopia -it --rm ubuntu vi /opt/sinopia/config.yaml
docker start sinopia
# Save the config file
curl -L https://raw.githubusercontent.com/rlidwka/sinopia/master/conf/default.yaml -o /path/to/config.yaml
# Mount the config file to the exposed data volume
docker run -v /path/to/config.yaml:/opt/sinopia/config.yaml --name sinopia -d -p 4873:4873 keyvanfatehi/sinopia:latest
Restart the container anytime you change the config.
Setting the npm registry to http://localhost:4873
in a Dockerfile which should point to the sinopia registry locally will not work during the docker build
process, since localhost:4873 references to the Docker container itself and not the host-machine where sinopia runs.
With the Vagrant configuration one could locally spin up this Dockerfile in a vbox with the command vagrant up
and reference this registry it in a 'target'-Dockerfile with RUN npm set registry http://10.10.10.10:4873
.
# vagrant up
and in the Dockerfile of your application set
CMD npm set registry http://10.10.10.10:4873
Vagrant is open source. See install instructions for mac or *nix.
docker run --volumes-from sinopia -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /opt/sinopia
Alternatively, host path for /opt/sinopia can be determined by running:
docker inspect sinopia
docker stop sinopia
docker rm sinopia
docker run --name sinopia -d -p 4873:4873 keyvanfatehi/sinopia:latest
docker stop sinopia
docker run --volumes-from sinopia -v $(pwd):/backup ubuntu tar xvf /backup/backup.tar
docker start sinopia