mirror of
				https://github.com/Akkudoktor-EOS/EOS.git
				synced 2025-11-04 00:36:21 +00:00 
			
		
		
		
	* Add EOS_CONFIG_DIR to set config dir (relative path to EOS_DIR or
   absolute path).
    - config_folder_path read-only
    - config_file_path read-only
 * Default values to support app start with empty config:
    - latitude/longitude (Berlin)
    - optimization_ev_available_charge_rates_percent (null, so model
      default value is used)
    - Enable Akkudoktor electricity price forecast (docker-compose).
 * Fix some endpoints (empty data, remove unused params, fix types).
 * cacheutil: Use cache dir. Closes #240
 * Support EOS_LOGGING_LEVEL environment variable to set log level.
 * tests: All tests use separate temporary config
    - Add pytest switch --check-config-side-effect to check user
      config file existence after each test. Will also fail if user config
      existed before test execution (but will only check after the test has
      run).
      Enable flag in github workflow.
    - Globally mock platformdirs in config module. Now no longer required
      to patch individually.
      Function calls to config instance (e.g. merge_settings_from_dict)
      were unaffected previously.
 * Set Berlin as default location (default config/docker-compose).
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			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"
 | 
						|
ENV EOS_CONFIG_DIR="${EOS_DIR}/config"
 | 
						|
 | 
						|
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}" \
 | 
						|
    && mkdir -p "${EOS_CONFIG_DIR}" \
 | 
						|
    && chown eos "${EOS_CONFIG_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}", "${EOS_CONFIG_DIR}"]
 |