2017-06-24 04:59:25 -05:00
# Prebuilt images
To pull the latest pre-built [docker image ](https://hub.docker.com/r/verdaccio/verdaccio/ ):
`docker pull verdaccio/verdaccio`
## Tagged Versions
Since version `v2.x` you can pull docker images by [tag ](https://hub.docker.com/r/verdaccio/verdaccio/tags/ ), as follows:
For a major version:
```bash
docker pull verdaccio/verdaccio:2
```
For a minor version:
```bash
docker pull verdaccio/verdaccio:2.1
```
For a specific (patch) version:
```bash
docker pull verdaccio/verdaccio:2.1.7
```
2017-10-08 02:13:54 -05:00
For the next major release using the `beta` version.
```bash
docker pull verdaccio/verdaccio:beta
```
The Canary version (master branch) is tagged as `next`
2017-10-06 00:21:05 -05:00
```bash
docker pull verdaccio/verdaccio:next
```
2017-06-24 04:59:25 -05:00
# Running verdaccio using Docker
To run the docker container:
```bash
docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio
```
The last argument defines which image to use.
The above line will pull the latest prebuilt image from dockerhub, if you haven't done that already.
If you have [build an image locally ](#build-your-own-docker-image ) use `verdaccio` as the last argument.
You can use `-v` to mount `conf` and `storage` to the hosts filesystem:
```bash
V_PATH=/path/for/verdaccio; docker run -it --rm --name verdaccio -p 4873:4873 \
-v $V_PATH/conf:/verdaccio/conf \
-v $V_PATH/storage:/verdaccio/storage \
verdaccio/verdaccio
```
## Docker and custom port configuration
Any `host:port` configured in `conf/config.yaml` under `listen` is currently ignored when using docker.
If you want to reach verdaccio docker instance under different port, lets say `5000`
in your `docker run` command replace `-p 4873:4873` with `-p 5000:4873` .
In case you need to specify which port to listen to **in the docker container** ,
since version 2.?.? you can do so by providing additional arguments to `docker run` : `--env PORT=5000`
This changes which port the docker container exposes and the port verdaccio listens to.
Of course the numbers you give to `-p` paremeter need to match,
so assuming you want them to all be the same this is what you could copy, paste and adopt:
```bash
PORT=5000; docker run -it --rm --name verdaccio \
--env PORT -p $PORT:$PORT
verdaccio/verdaccio
```
2017-07-05 02:47:29 -05:00
## Using HTTPS with Docker
You can configure the protocol verdaccio is going to listen on, similarly to the port configuration.
You have to overwrite the default value("http") of the `PROTOCOL` environment variable to "https", after you specified the certificates in the config.yaml.
```bash
PROTOCOL=https; docker run -it --rm --name verdaccio \
--env PROTOCOL -p 4873:4873
verdaccio/verdaccio
```
2017-06-24 04:59:25 -05:00
## Using docker-compose
1. Get the latest version of [docker-compose ](https://github.com/docker/compose ).
2. Build and run the container:
```bash
$ docker-compose up --build
```
2017-09-10 06:55:14 -05:00
You can set the port to use (for both container and host) by prefixing the above command with `PORT=5000 ` .
2017-06-24 04:59:25 -05:00
Docker will generate a named volume in which to store persistent application data. You can use `docker inspect` or `docker volume inspect` to reveal the physical location of the volume and edit the configuration, such as:
```
$ docker volume inspect verdaccio_verdaccio
[
{
"Name": "verdaccio_verdaccio",
"Driver": "local",
"Mountpoint": "/var/lib/docker/volumes/verdaccio_verdaccio/_data",
"Labels": null,
"Scope": "local"
}
]
```
# Build your own Docker image
```bash
docker build -t verdaccio .
```
There is also an npm script for building the docker image, so you can also do:
```bash
2017-07-22 11:21:49 -05:00
npm run build:docker
2017-06-24 04:59:25 -05:00
```
Note: The first build takes some minutes to build because it needs to run `npm install` ,
and it will take that long again whenever you change any file that is not listed in `.dockerignore` .
If you want to use the docker image on a rpi or a compatible device there is also a dockerfile available.
To build the docker image for raspberry pi execute:
```bash
2017-07-22 11:21:49 -05:00
npm run build:docker:rpi
2017-06-24 04:59:25 -05:00
```
Please note that for any of the above docker commands you need to have docker installed on your machine and the docker executable should be available on your `$PATH` .
# Docker Examples
There is a separate repository that hosts multiple configurations to compose Docker images with `verdaccio` , for instance, as reverse proxy:
https://github.com/verdaccio/docker-examples