| 
									
										
										
										
											2025-04-21 23:51:59 +02:00
										 |  |  | # syntax=docker/dockerfile:1.7
 | 
					
						
							| 
									
										
										
										
											2024-10-03 18:40:38 +02:00
										 |  |  | ARG PYTHON_VERSION=3.12.7
 | 
					
						
							| 
									
										
										
										
											2024-09-16 11:48:20 +02:00
										 |  |  | FROM python:${PYTHON_VERSION}-slim
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | LABEL source="https://github.com/Akkudoktor-EOS/EOS"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-07 20:56:10 +02:00
										 |  |  | ENV MPLCONFIGDIR="/tmp/mplconfigdir"
 | 
					
						
							|  |  |  | ENV EOS_DIR="/opt/eos"
 | 
					
						
							|  |  |  | ENV EOS_CACHE_DIR="${EOS_DIR}/cache"
 | 
					
						
							|  |  |  | ENV EOS_OUTPUT_DIR="${EOS_DIR}/output"
 | 
					
						
							| 
									
										
										
										
											2024-12-30 13:41:39 +01:00
										 |  |  | ENV EOS_CONFIG_DIR="${EOS_DIR}/config"
 | 
					
						
							| 
									
										
										
										
											2024-09-17 09:02:35 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-23 16:17:54 +01:00
										 |  |  | # Overwrite when starting the container in a production environment
 | 
					
						
							|  |  |  | ENV EOS_SERVER__EOSDASH_SESSKEY=s3cr3t | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-07 20:56:10 +02:00
										 |  |  | WORKDIR ${EOS_DIR}
 | 
					
						
							| 
									
										
										
										
											2024-09-16 11:48:20 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-07 20:56:10 +02:00
										 |  |  | 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}" \
 | 
					
						
							| 
									
										
										
										
											2024-12-30 13:41:39 +01:00
										 |  |  |     && chown eos "${EOS_OUTPUT_DIR}" \
 | 
					
						
							|  |  |  |     && mkdir -p "${EOS_CONFIG_DIR}" \
 | 
					
						
							|  |  |  |     && chown eos "${EOS_CONFIG_DIR}"
 | 
					
						
							| 
									
										
										
										
											2024-09-16 11:48:20 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-07 20:56:10 +02:00
										 |  |  | COPY requirements.txt .
 | 
					
						
							| 
									
										
										
										
											2024-09-16 11:48:20 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-07 20:56:10 +02:00
										 |  |  | RUN --mount=type=cache,target=/root/.cache/pip \
 | 
					
						
							|  |  |  |     pip install -r requirements.txt
 | 
					
						
							| 
									
										
										
										
											2024-09-16 11:48:20 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-24 00:09:28 +01:00
										 |  |  | COPY pyproject.toml .
 | 
					
						
							|  |  |  | RUN mkdir -p src && pip install -e .
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | COPY src src
 | 
					
						
							| 
									
										
										
										
											2024-10-07 20:56:10 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-21 15:30:27 +02:00
										 |  |  | # Create minimal default configuration for Docker to fix EOSDash accessibility (#629)
 | 
					
						
							|  |  |  | # This ensures EOSDash binds to 0.0.0.0 instead of 127.0.0.1 in containers
 | 
					
						
							|  |  |  | RUN echo '{\n\
 | 
					
						
							|  |  |  |   "server": {\n\
 | 
					
						
							|  |  |  |     "host": "0.0.0.0",\n\
 | 
					
						
							|  |  |  |     "port": 8503,\n\
 | 
					
						
							|  |  |  |     "startup_eosdash": true,\n\
 | 
					
						
							|  |  |  |     "eosdash_host": "0.0.0.0",\n\
 | 
					
						
							|  |  |  |     "eosdash_port": 8504\n\
 | 
					
						
							|  |  |  |   }\n\
 | 
					
						
							|  |  |  | }' > "${EOS_CONFIG_DIR}/EOS.config.json" \
 | 
					
						
							|  |  |  |     && chown eos:eos "${EOS_CONFIG_DIR}/EOS.config.json"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-07 20:56:10 +02:00
										 |  |  | USER eos
 | 
					
						
							| 
									
										
										
										
											2024-09-16 11:48:20 +02:00
										 |  |  | ENTRYPOINT []
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-11-15 22:27:25 +01:00
										 |  |  | EXPOSE 8503
 | 
					
						
							| 
									
										
										
										
											2025-01-24 00:09:28 +01:00
										 |  |  | EXPOSE 8504
 | 
					
						
							| 
									
										
										
										
											2024-11-15 22:27:25 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-24 00:09:28 +01:00
										 |  |  | CMD ["python", "src/akkudoktoreos/server/eos.py", "--host", "0.0.0.0"]
 | 
					
						
							| 
									
										
										
										
											2024-10-07 20:56:10 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-30 13:41:39 +01:00
										 |  |  | VOLUME ["${MPLCONFIGDIR}", "${EOS_CACHE_DIR}", "${EOS_OUTPUT_DIR}", "${EOS_CONFIG_DIR}"]
 |