Files
Artemis-Eapil/playground/nginx_container/docker-entrypoint.sh
T

47 lines
1.7 KiB
Bash

#!/bin/bash
# Copyright 2026 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -e
CERT_DIR="/etc/nginx/certs"
CERT_FILE="${CERT_DIR}/tls.crt"
KEY_FILE="${CERT_DIR}/tls.key"
echo "[Nginx Entrypoint] Initializing Artemis Ingress Proxy..."
# Check if SSL certificates exist; if not, auto-generate a self-signed fallback cert
if [ ! -f "$CERT_FILE" ] || [ ! -f "$KEY_FILE" ]; then
echo "[Nginx Entrypoint] No SSL certificate found at ${CERT_FILE}. Generating self-signed certificate for development/staging..."
mkdir -p "${CERT_DIR}"
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout "${KEY_FILE}" \
-out "${CERT_FILE}" \
-subj "/CN=localhost/O=Artemis/C=US" \
-addext "subjectAltName=DNS:localhost,DNS:*.localhost,IP:127.0.0.1" \
2>/dev/null
chmod 600 "${KEY_FILE}"
chmod 644 "${CERT_FILE}"
echo "[Nginx Entrypoint] Self-signed certificate generated successfully."
else
echo "[Nginx Entrypoint] SSL certificate verified at ${CERT_FILE}."
fi
# Test Nginx configuration validity before starting
echo "[Nginx Entrypoint] Verifying Nginx configuration syntax..."
nginx -t
echo "[Nginx Entrypoint] Starting Nginx daemon..."
exec "$@"