A Docker container that provides a go-import-redirector unit for NGINX Host.
This container makes use of rsc/go-import-redirector to create a server for custom Go import paths.
It is highly recommended that you use container orchestration software such as Docker Compose when using this NGINX Host unit as several Docker containers are required for operation. This guide will assume that you are using Docker Compose.
To begin, start with a basic docker-compose.yml
file as described in the
NGINX Host configuration guide. Then, add a
service for the NGINX Host go-import-redirector unit (named redirector
):
redirector:
image: handcraftedbits/nginx-unit-go-import-redirector
environment:
- NGINX_UNIT_HOSTS=mysite.com
- NGINX_URL_PREFIX=/go
- REDIRECTOR_IMPORT=mysite.com/go/*
- REDIRECTOR_REPO=https://github.com/mysite/*
volumes:
- data:/opt/container/shared
Observe the following:
- Several environment variables are used to configure go-import-redirector. See the environment variable reference and go-import-redirector documentation for additional information.
- As with any other NGINX Host unit, we mount our data volume, in this case named
data
, to/opt/container/shared
.
Finally, we need to create a link in our NGINX Host container to the redirector
container in order to host
go-import-redirector. Here is our final docker-compose.yml
file:
version: "2.1"
volumes:
data:
services:
proxy:
image: handcraftedbits/nginx-host
links:
- redirector
ports:
- "443:443"
volumes:
- data:/opt/container/shared
- /etc/letsencrypt:/etc/letsencrypt
- /home/me/dhparam.pem:/etc/ssl/dhparam.pem
redirector:
image: handcraftedbits/nginx-unit-go-import-redirector
environment:
- NGINX_UNIT_HOSTS=mysite.com
- NGINX_URL_PREFIX=/go
- REDIRECTOR_IMPORT=mysite.com/go/*
- REDIRECTOR_REPO=https://github.com/mysite/*
volumes:
- data:/opt/container/shared
This will result in making go-import-redirector available at https://mysite.com/go/*
.
Assuming you are using Docker Compose, simply run docker-compose up
in the same directory as your
docker-compose.yml
file. Otherwise, you will need to start each container with docker run
or a suitable
alternative, making sure to add the appropriate environment variables and volume references.
Used to specify the import path pattern. For example, mysite.com/go/*
.
Required
Used to specify the underlying repository URL that hosts Go code.
Required
Used to specify which version control system is represented by the underlying repository URL.
Default: git
Acceptable values: git
, hg
, svn
Please see the NGINX Host documentation for information on additional environment variables understood by this unit.