Skip to content

Commit

Permalink
Merge pull request #106 from sparkfabrik/feature/2470_logging_improve…
Browse files Browse the repository at this point in the history
…ments

refs platform/#2470: improve logging experience using structured logs
  • Loading branch information
Monska85 committed Sep 28, 2023
2 parents d283d0b + 54291a5 commit d1ee1d7
Show file tree
Hide file tree
Showing 15 changed files with 84 additions and 276 deletions.
18 changes: 14 additions & 4 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,16 @@ jobs:

- name: Build images
run: |
docker buildx build --load . --file Dockerfile-${{ matrix.version }} --tag $IMAGE_NAME:${{ matrix.version }}.d8 --build-arg user=root
docker buildx build --load . --file Dockerfile-${{ matrix.version }} --tag $IMAGE_NAME:${{ matrix.version }}.d8-rootless --build-arg user=1001
docker buildx build --load . \
--file Dockerfile \
--tag $IMAGE_NAME:${{ matrix.version }}.d8 \
--build-arg NGINX_IMAGE_TAG=${{ matrix.version }} \
--build-arg user=root
docker buildx build --load . \
--file Dockerfile \
--tag $IMAGE_NAME:${{ matrix.version }}.d8-rootless \
--build-arg NGINX_IMAGE_TAG=${{ matrix.version }} \
--build-arg user=1001
- name: Test images
shell: bash {0}
Expand Down Expand Up @@ -92,12 +100,14 @@ jobs:
PLATFORMS="${{ matrix.version == '1.13.6-alpine' && 'linux/amd64' || 'linux/amd64,linux/arm64' }}"
echo PLATFORMS=$PLATFORMS
docker buildx build --push . --platform "$PLATFORMS" \
--file Dockerfile-${{ matrix.version }} \
--file Dockerfile \
--tag $IMAGE_ID:${{ matrix.version }}.d8 \
--build-arg NGINX_IMAGE_TAG=${{ matrix.version }} \
--build-arg user=root
docker buildx build --push . --platform "$PLATFORMS" \
--file Dockerfile-${{ matrix.version }} \
--file Dockerfile \
--tag $IMAGE_ID:${{ matrix.version }}.d8-rootless \
--build-arg NGINX_IMAGE_TAG=${{ matrix.version }} \
--build-arg user=1001
- name: Push d8 tag
Expand Down
11 changes: 8 additions & 3 deletions Dockerfile-1.13.6-alpine → Dockerfile
Original file line number Diff line number Diff line change
@@ -1,18 +1,23 @@
FROM nginx:1.13.6-alpine
ARG NGINX_IMAGE_TAG=1.25.1-alpine-slim

FROM nginx:${NGINX_IMAGE_TAG}

# Pass inexistent UUID (e.g.: 1001) to enhance the container security
ARG user=root

LABEL org.opencontainers.image.source https://github.com/sparkfabrik/docker-php-drupal-nginx/tree/feature/d8

# Add for backward compatibility.
ENV NGINX_ACCESS_LOG_FORMAT=main

COPY docker-entrypoint.sh /docker-entrypoint.sh
COPY templates /templates
COPY config/custom.conf /etc/nginx/conf.d/000-custom.conf
COPY config/conf.d /etc/nginx/conf.d

RUN chmod +x /docker-entrypoint.sh && \
chmod 775 /etc/nginx && \
chmod 775 /etc/nginx/conf.d && \
chmod 664 /etc/nginx/conf.d/000-custom.conf && \
find /etc/nginx/conf.d -type f -exec chmod 664 {} + && \
mkdir -p /etc/nginx/conf.d/custom && \
chmod 775 /etc/nginx/conf.d/custom && \
mkdir -p /etc/nginx/conf.d/fragments && \
Expand Down
33 changes: 0 additions & 33 deletions Dockerfile-1.17.6-alpine

This file was deleted.

33 changes: 0 additions & 33 deletions Dockerfile-1.21.1-alpine

This file was deleted.

33 changes: 0 additions & 33 deletions Dockerfile-1.21.6-alpine

This file was deleted.

33 changes: 0 additions & 33 deletions Dockerfile-1.23.1-alpine

This file was deleted.

33 changes: 0 additions & 33 deletions Dockerfile-1.23.3-alpine

This file was deleted.

33 changes: 0 additions & 33 deletions Dockerfile-1.23.3-alpine-slim

This file was deleted.

33 changes: 0 additions & 33 deletions Dockerfile-1.25.1-alpine-slim

This file was deleted.

85 changes: 48 additions & 37 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,48 +1,59 @@
# Add tags for the official nginx image to build
IMAGE_TAGS ?= 1.13.6-alpine \
1.17.6-alpine \
1.21.1-alpine \
1.21.6-alpine \
1.23.1-alpine \
1.23.3-alpine \
1.23.3-alpine-slim \
1.25.1-alpine-slim

IMAGE_NAME ?= sparkfabrik/docker-php-drupal-nginx

.PHONY: shellcheck

all: build test build-rootless test-rootless

build:
docker build -f Dockerfile-1.13.6-alpine -t $(IMAGE_NAME):1.13.6-alpine.d8 --build-arg user=root .
docker build -f Dockerfile-1.17.6-alpine -t $(IMAGE_NAME):1.17.6-alpine.d8 --build-arg user=root .
docker build -f Dockerfile-1.21.1-alpine -t $(IMAGE_NAME):1.21.1-alpine.d8 --build-arg user=root .
docker build -f Dockerfile-1.21.6-alpine -t $(IMAGE_NAME):1.21.6-alpine.d8 --build-arg user=root .
docker build -f Dockerfile-1.23.1-alpine -t $(IMAGE_NAME):1.23.1-alpine.d8 --build-arg user=root .
docker build -f Dockerfile-1.23.3-alpine -t $(IMAGE_NAME):1.23.3-alpine.d8 --build-arg user=root .
docker build -f Dockerfile-1.23.3-alpine-slim -t $(IMAGE_NAME):1.23.3-alpine-slim.d8 --build-arg user=root .
build: BUILD_IMAGE_USER=root
build: BUILD_IMAGE_TAG_SUFFIX=d8
build: build-template

test:
@chmod +x ./tests/tests.sh
@IMAGE_NAME=$(IMAGE_NAME) IMAGE_TAG=1.13.6-alpine.d8 ./tests/tests.sh
@IMAGE_NAME=$(IMAGE_NAME) IMAGE_TAG=1.17.6-alpine.d8 ./tests/tests.sh
@IMAGE_NAME=$(IMAGE_NAME) IMAGE_TAG=1.21.1-alpine.d8 ./tests/tests.sh
@IMAGE_NAME=$(IMAGE_NAME) IMAGE_TAG=1.21.6-alpine.d8 ./tests/tests.sh
@IMAGE_NAME=$(IMAGE_NAME) IMAGE_TAG=1.23.1-alpine.d8 ./tests/tests.sh
@IMAGE_NAME=$(IMAGE_NAME) IMAGE_TAG=1.23.3-alpine.d8 ./tests/tests.sh
@IMAGE_NAME=$(IMAGE_NAME) IMAGE_TAG=1.23.3-alpine-slim.d8 ./tests/tests.sh

build-rootless:
docker build -f Dockerfile-1.13.6-alpine -t $(IMAGE_NAME):1.13.6-alpine.d8-rootless --build-arg user=1001 .
docker build -f Dockerfile-1.17.6-alpine -t $(IMAGE_NAME):1.17.6-alpine.d8-rootless --build-arg user=1001 .
docker build -f Dockerfile-1.21.1-alpine -t $(IMAGE_NAME):1.21.1-alpine.d8-rootless --build-arg user=1001 .
docker build -f Dockerfile-1.21.6-alpine -t $(IMAGE_NAME):1.21.6-alpine.d8-rootless --build-arg user=1001 .
docker build -f Dockerfile-1.23.1-alpine -t $(IMAGE_NAME):1.23.1-alpine.d8-rootless --build-arg user=1001 .
docker build -f Dockerfile-1.23.3-alpine -t $(IMAGE_NAME):1.23.3-alpine.d8-rootless --build-arg user=1001 .
docker build -f Dockerfile-1.23.3-alpine-slim -t $(IMAGE_NAME):1.23.3-alpine-slim.d8-rootless --build-arg user=1001 .
docker build -f Dockerfile-1.25.1-alpine-slim -t $(IMAGE_NAME):1.25.1-alpine-slim.d8-rootless --build-arg user=1001 .

test-rootless:
build-rootless: BUILD_IMAGE_USER=1001
build-rootless: BUILD_IMAGE_TAG_SUFFIX=d8-rootless
build-rootless: build-template

build-template:
@if [ -z "$(BUILD_IMAGE_USER)" ]; then echo "[build-template] BUILD_IMAGE_USER is not set"; exit 1; fi
@if [ -z "$(BUILD_IMAGE_TAG_SUFFIX)" ]; then echo "[build-template] BUILD_IMAGE_TAG_SUFFIX is not set"; exit 1; fi
@for NGINX_IMAGE_TAG in $(IMAGE_TAGS); do \
NGINX_IMAGE_TAG=$${NGINX_IMAGE_TAG} BUILD_IMAGE_TAG_SUFFIX=$(BUILD_IMAGE_TAG_SUFFIX) BUILD_IMAGE_USER=$(BUILD_IMAGE_USER) $(MAKE) base-build-template; \
done

base-build-template:
@if [ -z "$(NGINX_IMAGE_TAG)" ]; then echo "[base-build-template] NGINX_IMAGE_TAG is not set"; exit 1; fi
@if [ -z "$(BUILD_IMAGE_TAG_SUFFIX)" ]; then echo "[base-build-template] BUILD_IMAGE_TAG_SUFFIX is not set"; exit 1; fi
@if [ -z "$(BUILD_IMAGE_USER)" ]; then echo "[base-build-template] BUILD_IMAGE_USER is not set"; exit 1; fi
docker build -f Dockerfile -t $(IMAGE_NAME):$(NGINX_IMAGE_TAG).$(BUILD_IMAGE_TAG_SUFFIX) --build-arg NGINX_IMAGE_TAG=$(NGINX_IMAGE_TAG) --build-arg user=$(BUILD_IMAGE_USER) .

test: IMAGE_TAG_SUFFIX=d8
test: ADDITIONAL_PARAMS=""
test: test-template

test-rootless: IMAGE_TAG_SUFFIX=d8-rootless
test-rootless: ADDITIONAL_PARAMS="IMAGE_USER=\"unknown uid 1001\" BASE_TESTS_PORT=\"8080\""
test-rootless: test-template

test-template:
@chmod +x ./tests/tests.sh
@IMAGE_NAME=$(IMAGE_NAME) IMAGE_TAG=1.13.6-alpine.d8-rootless IMAGE_USER="unknown uid 1001" BASE_TESTS_PORT="8080" ./tests/tests.sh
@IMAGE_NAME=$(IMAGE_NAME) IMAGE_TAG=1.17.6-alpine.d8-rootless IMAGE_USER="unknown uid 1001" BASE_TESTS_PORT="8080" ./tests/tests.sh
@IMAGE_NAME=$(IMAGE_NAME) IMAGE_TAG=1.21.1-alpine.d8-rootless IMAGE_USER="unknown uid 1001" BASE_TESTS_PORT="8080" ./tests/tests.sh
@IMAGE_NAME=$(IMAGE_NAME) IMAGE_TAG=1.21.6-alpine.d8-rootless IMAGE_USER="unknown uid 1001" BASE_TESTS_PORT="8080" ./tests/tests.sh
@IMAGE_NAME=$(IMAGE_NAME) IMAGE_TAG=1.23.1-alpine.d8-rootless IMAGE_USER="unknown uid 1001" BASE_TESTS_PORT="8080" ./tests/tests.sh
@IMAGE_NAME=$(IMAGE_NAME) IMAGE_TAG=1.23.3-alpine.d8-rootless IMAGE_USER="unknown uid 1001" BASE_TESTS_PORT="8080" ./tests/tests.sh
@IMAGE_NAME=$(IMAGE_NAME) IMAGE_TAG=1.23.3-alpine-slim.d8-rootless IMAGE_USER="unknown uid 1001" BASE_TESTS_PORT="8080" ./tests/tests.sh
@IMAGE_NAME=$(IMAGE_NAME) IMAGE_TAG=1.25.1-alpine-slim.d8-rootless IMAGE_USER="unknown uid 1001" BASE_TESTS_PORT="8080" ./tests/tests.sh
@for NGINX_IMAGE_TAG in $(IMAGE_TAGS); do \
ADDITIONAL_PARAMS=$(ADDITIONAL_PARAMS) IMAGE_TAG=$${NGINX_IMAGE_TAG}.$(IMAGE_TAG_SUFFIX) $(MAKE) base-test-template; \
done

base-test-template: ADDITIONAL_PARAMS ?= ""
base-test-template:
@if [ -z "$(IMAGE_NAME)" ]; then echo "[base-test-template] IMAGE_NAME is not set"; exit 1; fi
@if [ -z "$(IMAGE_TAG)" ]; then echo "[base-test-template] IMAGE_TAG is not set"; exit 1; fi
IMAGE_NAME=$(IMAGE_NAME) IMAGE_TAG=$(IMAGE_TAG) $(ADDITIONAL_PARAMS) ./tests/tests.sh

shellcheck-build:
@docker build -f shellcheck/Dockerfile -t sparkfabrik/shellchek shellcheck
Expand Down
File renamed without changes.
1 change: 1 addition & 0 deletions config/conf.d/001-structured-logs.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
log_format structured '{"requestId": "$request_id", "status": $status, "request": "$request", "remoteAddr": "$remote_addr", "body_bytes_sent": $body_bytes_sent, "http_referer": "$http_referer", "http_user_agent": "$http_user_agent"}';
Loading

0 comments on commit d1ee1d7

Please sign in to comment.