mirror of
				https://github.com/Akkudoktor-EOS/EOS.git
				synced 2025-11-04 00:36:21 +00:00 
			
		
		
		
	* Migrate from Flask to FastAPI
 * FastAPI migration:
    - Use pydantic model classes as input parameters to the
      data/calculation classes.
    - Interface field names changed to constructor parameter names (for
      simplicity only during transition, should be updated in a followup
      PR).
    - Add basic interface requirements (e.g. some values > 0, etc.).
 * Update tests for new data format.
 * Python requirement down to 3.9 (TypeGuard no longer needed)
 * Makefile: Add helpful targets (e.g. development server with reload)
* Move API doc from README to pydantic model classes (swagger)
 * Link to swagger.io with own openapi.yml.
 * Commit openapi.json and check with pytest for changes so the
   documentation is always up-to-date.
* Streamline docker
* FastAPI: Run startup action on dev server
 * Fix config for /strompreis, endpoint still broken however.
* test_openapi: Compare against docs/.../openapi.json
* Move fastapi to server/ submodule
 * See #187 for new repository structure.
		
	
		
			
				
	
	
		
			38 lines
		
	
	
		
			904 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			904 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
ARG PYTHON_VERSION=3.12.7
 | 
						|
FROM python:${PYTHON_VERSION}-slim
 | 
						|
 | 
						|
LABEL source="https://github.com/Akkudoktor-EOS/EOS"
 | 
						|
 | 
						|
ENV VIRTUAL_ENV="/opt/venv"
 | 
						|
ENV PATH="${VIRTUAL_ENV}/bin:${PATH}"
 | 
						|
ENV MPLCONFIGDIR="/tmp/mplconfigdir"
 | 
						|
ENV EOS_DIR="/opt/eos"
 | 
						|
ENV EOS_CACHE_DIR="${EOS_DIR}/cache"
 | 
						|
ENV EOS_OUTPUT_DIR="${EOS_DIR}/output"
 | 
						|
 | 
						|
WORKDIR ${EOS_DIR}
 | 
						|
 | 
						|
RUN adduser --system --group --no-create-home eos \
 | 
						|
    && mkdir -p "${MPLCONFIGDIR}" \
 | 
						|
    && chown eos "${MPLCONFIGDIR}" \
 | 
						|
    && mkdir -p "${EOS_CACHE_DIR}" \
 | 
						|
    && chown eos "${EOS_CACHE_DIR}" \
 | 
						|
    && mkdir -p "${EOS_OUTPUT_DIR}" \
 | 
						|
    && chown eos "${EOS_OUTPUT_DIR}"
 | 
						|
 | 
						|
COPY requirements.txt .
 | 
						|
 | 
						|
RUN --mount=type=cache,target=/root/.cache/pip \
 | 
						|
    pip install -r requirements.txt
 | 
						|
 | 
						|
COPY src .
 | 
						|
 | 
						|
USER eos
 | 
						|
ENTRYPOINT []
 | 
						|
 | 
						|
EXPOSE 8503
 | 
						|
 | 
						|
CMD ["python", "-m", "akkudoktoreos.server.fastapi_server"]
 | 
						|
 | 
						|
VOLUME ["${MPLCONFIGDIR}", "${EOS_CACHE_DIR}", "${EOS_OUTPUT_DIR}"]
 |