Co-authored-by: draoncc <14227820+draoncc@users.noreply.github.com> Co-authored-by: anastasiia-developer <anastasiia@redocly.com>
2.5 KiB
Official ReDoc Docker Image
Usage
Docker
Serve remote spec by URL:
docker run -it --rm -p 80:80 \
-e SPEC_URL='http://localhost:8000/swagger.yaml' redocly/redoc
Serve local file:
docker run -it --rm -p 80:80 \
-v $(pwd)/demo/swagger.yaml:/usr/share/nginx/html/swagger.yaml \
-e SPEC_URL=swagger.yaml redocly/redoc
Serve local file and watch for updates:
docker run -it --rm -p 80:80 \
-v $(pwd)/demo/:/usr/share/nginx/html/swagger/ \
-e SPEC_URL=swagger/swagger.yaml redocly/redoc
OpenShift
To quote OpenShift Container Platform-Specific Guidelines:
Support Arbitrary User IDs
By default, OpenShift Container Platform runs containers using an arbitrarily assigned user ID. This provides additional security against processes escaping the container due to a container engine vulnerability and thereby achieving escalated permissions on the host node.
For an image to support running as an arbitrary user, directories and files that may be written to by processes in the image should be owned by the root group and be read/writable by that group. Files to be executed should also have group execute permissions.
To comply with those requirements the Dockerfile
contains instructions to adapt the rights for the folders:
/etc/nginx
because thedocker-run.sh
script modifies it at startup time/usr/share/nginx/html
because thedocker-run.sh
script modifies it at startup time/var/cache/nginx
because the Nginx process writes to it/var/log/nginx
because the Nginx process writes to it/var/run
because the Nginx process writes to it
Another issue with OpenShift is that the default exposed port 80
cannot be used as it is restricted. So one needs to use another port like 8080
(using the PORT
configuration as described below), and then to configure the container spec
accordingly.
Runtime configuration options
PAGE_TITLE
(default"ReDoc"
) - page titlePAGE_FAVICON
(default"favicon.png"
) - URL to page faviconBASE_PATH
(optional) - prepend favicon & standalone bundle with this pathSPEC_URL
(default"http://petstore.swagger.io/v2/swagger.json"
) - URL to specPORT
(default80
) - nginx portREDOC_OPTIONS
(optional) -<redoc>
tag attributes
Build
docker build -t redocly/redoc .