mirror of
				https://github.com/home-assistant/core.git
				synced 2025-11-04 00:19:31 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
FROM mcr.microsoft.com/devcontainers/python:1-3.12
 | 
						|
 | 
						|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
 | 
						|
 | 
						|
# Uninstall pre-installed formatting and linting tools
 | 
						|
# They would conflict with our pinned versions
 | 
						|
RUN \
 | 
						|
    pipx uninstall pydocstyle \
 | 
						|
    && pipx uninstall pycodestyle \
 | 
						|
    && pipx uninstall mypy \
 | 
						|
    && pipx uninstall pylint
 | 
						|
 | 
						|
RUN \
 | 
						|
    curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
 | 
						|
    && apt-get update \
 | 
						|
    && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
 | 
						|
        # Additional library needed by some tests and accordingly by VScode Tests Discovery
 | 
						|
        bluez \
 | 
						|
        ffmpeg \
 | 
						|
        libudev-dev \
 | 
						|
        libavformat-dev \
 | 
						|
        libavcodec-dev \
 | 
						|
        libavdevice-dev \
 | 
						|
        libavutil-dev \
 | 
						|
        libgammu-dev \
 | 
						|
        libswscale-dev \
 | 
						|
        libswresample-dev \
 | 
						|
        libavfilter-dev \
 | 
						|
        libpcap-dev \
 | 
						|
        libturbojpeg0 \
 | 
						|
        libyaml-dev \
 | 
						|
        libxml2 \
 | 
						|
        git \
 | 
						|
        cmake \
 | 
						|
    && apt-get clean \
 | 
						|
    && rm -rf /var/lib/apt/lists/*
 | 
						|
 | 
						|
# Install uv
 | 
						|
RUN pip3 install uv
 | 
						|
 | 
						|
WORKDIR /usr/src
 | 
						|
 | 
						|
# Setup hass-release
 | 
						|
RUN git clone --depth 1 https://github.com/home-assistant/hass-release \
 | 
						|
    && uv pip install --system -e hass-release/
 | 
						|
 | 
						|
USER vscode
 | 
						|
ENV VIRTUAL_ENV="/home/vscode/.local/ha-venv"
 | 
						|
RUN uv venv $VIRTUAL_ENV
 | 
						|
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
 | 
						|
 | 
						|
WORKDIR /tmp
 | 
						|
 | 
						|
# Install Python dependencies from requirements
 | 
						|
COPY requirements.txt ./
 | 
						|
COPY homeassistant/package_constraints.txt homeassistant/package_constraints.txt
 | 
						|
RUN uv pip install -r requirements.txt
 | 
						|
COPY requirements_test.txt requirements_test_pre_commit.txt ./
 | 
						|
RUN uv pip install -r requirements_test.txt
 | 
						|
 | 
						|
WORKDIR /workspaces
 | 
						|
 | 
						|
# Set the default shell to bash instead of sh
 | 
						|
ENV SHELL /bin/bash
 |