From 9420360ba30446f93d28f09c893e3527ac64ebe0 Mon Sep 17 00:00:00 2001 From: Lukas Holecek Date: Mar 02 2020 08:04:15 +0000 Subject: [PATCH 1/3] Remove unneeded source files from container Signed-off-by: Lukas Holecek --- diff --git a/Dockerfile b/Dockerfile index ba3a0eb..97524ff 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,13 +28,19 @@ RUN if [ "$cacert_url" != "undefined" ]; then \ && curl -O --insecure $cacert_url \ && update-ca-trust extract; \ fi + # This will allow a non-root user to install a custom root CA at run-time RUN chmod 777 /etc/pki/tls/certs/ca-bundle.crt -COPY . . + +COPY . /tmp/code ENV GREENWAVE_SUBJECT_TYPES_DIR /src/conf/subject_types -RUN pip3 install . --no-deps -# Remove the default fedmsg config files included in the repo -RUN rm -rf ./fedmsg.d +RUN cd /tmp/code \ + && pip3 install . --no-deps \ + && mkdir /src/docker \ + && cp -v docker/docker-entrypoint.sh /src/docker \ + && cp -vr conf /src \ + && rm -rf /tmp/* + USER 1001 EXPOSE 8080 ENTRYPOINT ["/src/docker/docker-entrypoint.sh"] diff --git a/docker-compose.yml b/docker-compose.yml index 3d49d17..218ae46 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,11 +3,11 @@ services: dev: build: . user: ${DEV_USER_ID:-1000} - working_dir: /code + working_dir: /src env_file: ["docker/dev.env"] command: ["bash", "-c", "./docker/dev-command.sh"] volumes: - - ./:/code:ro,z + - ./:/src:ro,z - ./docker/home:/home/dev:rw,z - ./docker/greenwave-settings.py:/etc/greenwave/settings.py:ro,z - ./conf/policies/:/etc/greenwave/policies/:ro,z From b95bb93fe669fd7608a8369eb358efa725e94d9c Mon Sep 17 00:00:00 2001 From: Lukas Holecek Date: Mar 02 2020 08:22:29 +0000 Subject: [PATCH 2/3] Use a default configuration in container Use existing default configuration paths in container. Signed-off-by: Lukas Holecek --- diff --git a/Dockerfile b/Dockerfile index 97524ff..b96dd37 100644 --- a/Dockerfile +++ b/Dockerfile @@ -33,7 +33,6 @@ RUN if [ "$cacert_url" != "undefined" ]; then \ RUN chmod 777 /etc/pki/tls/certs/ca-bundle.crt COPY . /tmp/code -ENV GREENWAVE_SUBJECT_TYPES_DIR /src/conf/subject_types RUN cd /tmp/code \ && pip3 install . --no-deps \ && mkdir /src/docker \ diff --git a/docker/docker-entrypoint.sh b/docker/docker-entrypoint.sh index 1f316cf..47bc25b 100755 --- a/docker/docker-entrypoint.sh +++ b/docker/docker-entrypoint.sh @@ -15,4 +15,31 @@ main() { } main + +if [ -z "$GREENWAVE_CONFIG"]; then + if [ -f /etc/greenwave/settings.py ]; then + export GREENWAVE_CONFIG=/etc/greenwave/settings.py + elif [ -f /src/conf/settings.py ]; then + export GREENWAVE_CONFIG=/src/conf/settings.py + else + export GREENWAVE_CONFIG=/src/conf/settings.py.example + fi +fi + +if [ -z "$GREENWAVE_SUBJECT_TYPES_DIR"]; then + if [ -d /etc/greenwave/subject_types ]; then + export GREENWAVE_SUBJECT_TYPES_DIR=/etc/greenwave/subject_types + else + export GREENWAVE_SUBJECT_TYPES_DIR=/src/conf/subject_types + fi +fi + +if [ -z "$GREENWAVE_POLICIES_DIR"]; then + if [ -d /etc/greenwave/policies ]; then + export GREENWAVE_POLICIES_DIR=/etc/greenwave/policies + else + export GREENWAVE_POLICIES_DIR=/src/conf/policies + fi +fi + exec "$@" diff --git a/greenwave/config.py b/greenwave/config.py index 9fad117..87d0fd7 100644 --- a/greenwave/config.py +++ b/greenwave/config.py @@ -43,7 +43,7 @@ class Config(object): REQUESTS_VERIFY = True POLICIES_DIR = '/etc/greenwave/policies' - SUBJECT_TYPES_DIR = _local_conf_dir('subject_types') + SUBJECT_TYPES_DIR = '/etc/greenwave/subject_types' MESSAGING = 'fedmsg' diff --git a/greenwave/utils.py b/greenwave/utils.py index c4aae65..658dd14 100644 --- a/greenwave/utils.py +++ b/greenwave/utils.py @@ -101,6 +101,9 @@ def load_config(config_obj=None): if os.environ.get('GREENWAVE_SUBJECT_TYPES_DIR'): config['SUBJECT_TYPES_DIR'] = os.environ['GREENWAVE_SUBJECT_TYPES_DIR'] + if os.environ.get('GREENWAVE_POLICIES_DIR'): + config['POLICIES_DIR'] = os.environ['GREENWAVE_POLICIES_DIR'] + return config From 6168c111688de4302bf18f7f11205bdbff038f69 Mon Sep 17 00:00:00 2001 From: Lukas Holecek Date: Mar 02 2020 08:22:29 +0000 Subject: [PATCH 3/3] Tests: Avoid using GREENWAVE_CONFIG variable in tests Signed-off-by: Lukas Holecek --- diff --git a/greenwave/tests/conftest.py b/greenwave/tests/conftest.py index 5c605e4..aec4009 100644 --- a/greenwave/tests/conftest.py +++ b/greenwave/tests/conftest.py @@ -3,6 +3,11 @@ import pytest from greenwave.app_factory import create_app +@pytest.fixture(autouse=True) +def mock_env_config(monkeypatch): + monkeypatch.delenv('GREENWAVE_CONFIG') + + @pytest.fixture def app(): app = create_app(config_obj='greenwave.config.TestingConfig')