48ea61cdcc
- Product documentation in docs/products/ - Updated MEMORY.md with product info - quiXzoom Auth Core as AAMOS Identity product
30 lines
1.2 KiB
Docker
30 lines
1.2 KiB
Docker
FROM python:3.11-slim
|
|
|
|
WORKDIR /app
|
|
|
|
# Install dependencies
|
|
COPY requirements.txt .
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
# Copy application
|
|
COPY . .
|
|
|
|
# Generate JWT keys if not present
|
|
RUN python -c "from cryptography.hazmat.primitives import serialization; from cryptography.hazmat.primitives.asymmetric import rsa; from cryptography.hazmat.backends import default_backend; import os; \
|
|
os.makedirs('/app/keys', exist_ok=True); \
|
|
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048, backend=default_backend()); \
|
|
open('/app/keys/private.pem', 'wb').write(private_key.private_bytes(encoding=serialization.Encoding.PEM, format=serialization.PrivateFormat.PKCS8, encryption_algorithm=serialization.NoEncryption())); \
|
|
open('/app/keys/public.pem', 'wb').write(private_key.public_key().public_bytes(encoding=serialization.Encoding.PEM, format=serialization.PublicFormat.SubjectPublicKeyInfo)); \
|
|
print('JWT keys generated')"
|
|
|
|
ENV PORT=8080
|
|
ENV HOST=0.0.0.0
|
|
ENV JWT_PRIVATE_KEY_PATH=/app/keys/private.pem
|
|
ENV JWT_PUBLIC_KEY_PATH=/app/keys/public.pem
|
|
ENV REDIS_HOST=localhost
|
|
ENV REDIS_PORT=6379
|
|
|
|
EXPOSE 8080
|
|
|
|
CMD ["python", "main.py"]
|