mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			31 lines
		
	
	
		
			993 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			993 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
| ARG BUILD_FROM=esphome/esphome-base:latest
 | |
| FROM ${BUILD_FROM}
 | |
| 
 | |
| # First install requirements to leverage caching when requirements don't change
 | |
| COPY requirements.txt requirements_optional.txt docker/platformio_install_deps.py platformio.ini /
 | |
| RUN \
 | |
|     pip3 install --no-cache-dir -r /requirements.txt -r /requirements_optional.txt \
 | |
|     && /platformio_install_deps.py /platformio.ini
 | |
| 
 | |
| # Then copy esphome and install
 | |
| COPY . .
 | |
| RUN pip3 install --no-cache-dir -e .
 | |
| 
 | |
| # Settings for dashboard
 | |
| ENV USERNAME="" PASSWORD=""
 | |
| 
 | |
| # Expose the dashboard to Docker
 | |
| EXPOSE 6052
 | |
| 
 | |
| # Run healthcheck (heartbeat)
 | |
| HEALTHCHECK --interval=30s --timeout=30s \
 | |
|   CMD curl --fail http://localhost:6052 || exit 1
 | |
| 
 | |
| # The directory the user should mount their configuration files to
 | |
| WORKDIR /config
 | |
| # Set entrypoint to esphome so that the user doesn't have to type 'esphome'
 | |
| # in every docker command twice
 | |
| ENTRYPOINT ["esphome"]
 | |
| # When no arguments given, start the dashboard in the workdir
 | |
| CMD ["dashboard", "/config"]
 |