Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
9c45e4d5e1 | |||
dfd30f5eae | |||
a5537b18a4 | |||
9601cb1e54 | |||
54ac5dc2ab | |||
a086c2fc22 | |||
e33a2d2c0a | |||
821fb5f36e | |||
7362e275b0 |
24
Dockerfile
24
Dockerfile
@ -29,20 +29,34 @@ RUN pip install \
|
||||
# django-rq is used for webhooks
|
||||
django-rq
|
||||
|
||||
ARG BRANCH=master
|
||||
|
||||
WORKDIR /tmp
|
||||
|
||||
# As the requirements don't change very often,
|
||||
# and as they take some time to compile,
|
||||
# we try to cache them very agressively.
|
||||
ARG REQUIREMENTS_URL=https://raw.githubusercontent.com/digitalocean/netbox/$BRANCH/requirements.txt
|
||||
ADD ${REQUIREMENTS_URL} requirements.txt
|
||||
RUN pip install -r requirements.txt
|
||||
|
||||
# Cache bust when the upstream branch changes:
|
||||
# ADD will fetch the file and check if it has changed
|
||||
# If not, Docker will use the existing build cache.
|
||||
# If yes, Docker will bust the cache and run every build step from here on.
|
||||
ARG REF_URL=https://api.github.com/repos/digitalocean/netbox/contents?ref=$BRANCH
|
||||
ADD ${REF_URL} version.json
|
||||
|
||||
WORKDIR /opt
|
||||
|
||||
ARG BRANCH=master
|
||||
ARG URL=https://github.com/digitalocean/netbox/archive/$BRANCH.tar.gz
|
||||
RUN wget -q -O - "${URL}" | tar xz \
|
||||
&& mv netbox* netbox
|
||||
|
||||
WORKDIR /opt/netbox
|
||||
RUN pip install -r requirements.txt
|
||||
|
||||
COPY docker/configuration.docker.py /opt/netbox/netbox/netbox/configuration.py
|
||||
COPY configuration/gunicorn_config.py /etc/netbox/config/
|
||||
COPY docker/nginx.conf /etc/netbox-nginx/nginx.conf
|
||||
COPY docker/docker-entrypoint.sh docker-entrypoint.sh
|
||||
COPY docker/docker-entrypoint.sh /opt/netbox/docker-entrypoint.sh
|
||||
COPY startup_scripts/ /opt/netbox/startup_scripts/
|
||||
COPY initializers/ /opt/netbox/initializers/
|
||||
COPY configuration/configuration.py /etc/netbox/config/configuration.py
|
||||
|
@ -385,6 +385,8 @@ Compare the version with the list below to check whether a breaking change was i
|
||||
|
||||
The following is a list of breaking changes of the `netbox-docker` project:
|
||||
|
||||
* 0.14.0: Improved caching strategy [#137][137] [#136][136].
|
||||
New `AUTH_LDAP_GROUP_TYPE` environment variable [#135][135].
|
||||
* 0.13.0: `AUTH_LDAP_BIND_PASSWORD` can now be extracted into a secrets file. [#133][133]
|
||||
* 0.12.0: A new flag `REDIS_SSL=false` was added to the `env/netbox.env` file. [#129][129]
|
||||
* 0.11.0: The docker-compose file now marks volumes as shared (`:z`). This should prevent SELinux problems [#131][131]
|
||||
@ -404,6 +406,9 @@ The following is a list of breaking changes of the `netbox-docker` project:
|
||||
[131]: https://github.com/netbox-community/netbox-docker/pull/131
|
||||
[129]: https://github.com/netbox-community/netbox-docker/pull/129
|
||||
[133]: https://github.com/netbox-community/netbox-docker/pull/133
|
||||
[135]: https://github.com/netbox-community/netbox-docker/pull/135
|
||||
[136]: https://github.com/netbox-community/netbox-docker/pull/136
|
||||
[137]: https://github.com/netbox-community/netbox-docker/pull/137
|
||||
|
||||
## Rebuilding & Publishing images
|
||||
|
||||
|
@ -1,7 +1,8 @@
|
||||
import ldap
|
||||
import os
|
||||
|
||||
from django_auth_ldap.config import LDAPSearch, GroupOfNamesType
|
||||
from django_auth_ldap.config import LDAPSearch
|
||||
from importlib import import_module
|
||||
|
||||
# Read secret from file
|
||||
def read_secret(secret_name):
|
||||
@ -13,6 +14,14 @@ def read_secret(secret_name):
|
||||
with f:
|
||||
return f.readline().strip()
|
||||
|
||||
# Import and return the group type based on string name
|
||||
def import_group_type(group_type_name):
|
||||
mod = import_module('django_auth_ldap.config')
|
||||
try:
|
||||
return getattr(mod, group_type_name)()
|
||||
except:
|
||||
return None
|
||||
|
||||
# Server URI
|
||||
AUTH_LDAP_SERVER_URI = os.environ.get('AUTH_LDAP_SERVER_URI', '')
|
||||
|
||||
@ -45,7 +54,7 @@ AUTH_LDAP_GROUP_SEARCH_BASEDN = os.environ.get('AUTH_LDAP_GROUP_SEARCH_BASEDN',
|
||||
AUTH_LDAP_GROUP_SEARCH_CLASS = os.environ.get('AUTH_LDAP_GROUP_SEARCH_CLASS', 'group')
|
||||
AUTH_LDAP_GROUP_SEARCH = LDAPSearch(AUTH_LDAP_GROUP_SEARCH_BASEDN, ldap.SCOPE_SUBTREE,
|
||||
"(objectClass=" + AUTH_LDAP_GROUP_SEARCH_CLASS + ")")
|
||||
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType()
|
||||
AUTH_LDAP_GROUP_TYPE = import_group_type(os.environ.get('AUTH_LDAP_GROUP_TYPE', 'GroupOfNamesType'))
|
||||
|
||||
# Define a group required to login.
|
||||
AUTH_LDAP_REQUIRE_GROUP = os.environ.get('AUTH_LDAP_REQUIRE_GROUP_DN', '')
|
||||
|
Reference in New Issue
Block a user