42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| ARG HASS_VERSION=latest
 | |
| 
 | |
| FROM homeassistant/home-assistant:$HASS_VERSION
 | |
| 
 | |
| RUN apk add --update-cache zbar mysql-client \
 | |
|   && rm -rf /var/cache/apk/*
 | |
| 
 | |
| # Check if root
 | |
| # If running as root, remove setuid and setgid flags of everything
 | |
| # Then add a hass user and make that the owner of /config
 | |
| # Finally, make pip install to user folders
 | |
| RUN python3 -c 'import os; assert os.geteuid() == 0, "Already non-root! Skip changing user"' \
 | |
|   && find / -xdev -type f -perm /u+s -exec chmod -c u-s {} \; \
 | |
|   && find / -xdev -type f -perm /g+s -exec chmod -c g-s {} \; \
 | |
|   && adduser -D hass \
 | |
|   && addgroup hass dialout \
 | |
|   && chown hass /config \
 | |
|   && mkdir -p ~hass/.config/pip \
 | |
|   && chown hass ~hass/.config \
 | |
|   && chown hass ~hass/.config/pip \
 | |
|   && echo -e '[install]\nuser = yes' > ~hass/.config/pip/pip.conf \
 | |
|   && mkdir -p ~hass/.local/lib \
 | |
|   && chown hass ~hass/.local \
 | |
|   && chown hass ~hass/.local/lib
 | |
| 
 | |
| COPY wait-for-db.sh /home/hass/wait-for-db.sh
 | |
| RUN chmod +x /home/hass/wait-for-db.sh
 | |
| 
 | |
| USER hass
 | |
| 
 | |
| # Make /config persistent even if not mounted
 | |
| VOLUME /config
 | |
| # Make pip cache persistent
 | |
| VOLUME /home/hass/.local/lib
 | |
| WORKDIR /config
 | |
| # Export default port for use with routers like traefik
 | |
| EXPOSE 8123/tcp
 | |
| 
 | |
| CMD ["/home/hass/wait-for-db.sh", "python3", "-m", "homeassistant", "-v", "--config", "/config"]
 | |
| 
 | |
| HEALTHCHECK CMD curl http://localhost:8123/ || exit 1
 |