mirror of
https://github.com/hassio-addons/addon-vscode.git
synced 2025-05-03 18:51:23 +00:00
✨ Initial add-on code
This commit is contained in:
parent
416e586602
commit
344e8f48be
20 changed files with 810 additions and 0 deletions
144
vscode/Dockerfile
Executable file
144
vscode/Dockerfile
Executable file
|
@ -0,0 +1,144 @@
|
|||
ARG BUILD_FROM=hassioaddons/ubuntu-base:3.0.0
|
||||
###############################################################################
|
||||
# Get the original code-server container.
|
||||
###############################################################################
|
||||
FROM codercom/code-server as codeserver
|
||||
|
||||
###############################################################################
|
||||
# Build container to get custom vscode extensions.
|
||||
###############################################################################
|
||||
FROM ${BUILD_FROM} as vscode
|
||||
|
||||
# Copy in extensions list
|
||||
COPY vscode.extensions /root/vscode.extensions
|
||||
|
||||
# Install the actual VSCode to download configs and extensions
|
||||
RUN \
|
||||
apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
libx11-xcb1 \
|
||||
libasound2 \
|
||||
\
|
||||
&& curl \
|
||||
-o vscode-amd64.deb \
|
||||
-L https://vscode-update.azurewebsites.net/latest/linux-deb-x64/stable \
|
||||
\
|
||||
&& dpkg -i vscode-amd64.deb || true \
|
||||
&& apt-get install -y -f \
|
||||
&& rm -f vscode-amd64.deb \
|
||||
\
|
||||
&& code -v --user-data-dir /root/.config/Code
|
||||
|
||||
RUN \
|
||||
while read -r ext; do \
|
||||
echo "Installing vscode extension: $ext"; \
|
||||
code --user-data-dir /root/.config/Code --install-extension $ext; \
|
||||
done < /root/vscode.extensions \
|
||||
&& ls -la /root/.vscode/extensions
|
||||
|
||||
###############################################################################
|
||||
# Build the actual add-on.
|
||||
###############################################################################
|
||||
# hadolint ignore=DL3006
|
||||
FROM ${BUILD_FROM}
|
||||
|
||||
# Confiure locale
|
||||
ENV LANG=en_US.UTF-8
|
||||
|
||||
# Set shell
|
||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||
|
||||
# Copy Python requirements file
|
||||
COPY requirements.txt /tmp/requirements.txt
|
||||
|
||||
# Setup base system
|
||||
ARG BUILD_ARCH
|
||||
RUN \
|
||||
apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
build-essential=12.4ubuntu1 \
|
||||
colordiff=1.0.18-1 \
|
||||
git=1:2.17.1-1ubuntu0.4 \
|
||||
locales=2.27-3ubuntu1 \
|
||||
mosquitto-clients=1.4.15-2ubuntu0.18.04.2 \
|
||||
net-tools=1.60+git20161116.90da8a0-1ubuntu1 \
|
||||
nmap=7.60-1ubuntu5 \
|
||||
openssh-client=1:7.6p1-4ubuntu0.3 \
|
||||
openssl=1.1.0g-2ubuntu4.3 \
|
||||
python3=3.6.7-1~18.04 \
|
||||
python3-dev=3.6.7-1~18.04 \
|
||||
wget=1.19.4-1ubuntu2.1 \
|
||||
zsh=5.4.2-3ubuntu3.1 \
|
||||
\
|
||||
&& curl https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||
\
|
||||
&& locale-gen en_US.UTF-8 \
|
||||
\
|
||||
&& curl -L -s -o /usr/bin/hassio \
|
||||
"https://github.com/home-assistant/hassio-cli/releases/download/2.1.0/hassio_${BUILD_ARCH}" \
|
||||
&& chmod a+x /usr/bin/hassio \
|
||||
\
|
||||
&& git clone --branch master --single-branch --depth 1 \
|
||||
"git://github.com/robbyrussell/oh-my-zsh.git" ~/.oh-my-zsh \
|
||||
\
|
||||
&& git clone --branch master --single-branch --depth 1 \
|
||||
"git://github.com/zsh-users/zsh-autosuggestions" \
|
||||
~/.oh-my-zsh/custom/plugins/zsh-autosuggestions \
|
||||
&& git clone --branch master --single-branch --depth 1 \
|
||||
"git://github.com/zsh-users/zsh-syntax-highlighting.git" \
|
||||
~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting \
|
||||
\
|
||||
&& sed -i -e "s#bin/bash#bin/zsh#" /etc/passwd \
|
||||
\
|
||||
&& update-alternatives \
|
||||
--install /usr/bin/python python /usr/bin/python3 10 \
|
||||
\
|
||||
&& pip3 install --no-cache-dir -r /tmp/requirements.txt \
|
||||
\
|
||||
&& apt-get purge -y --auto-remove \
|
||||
python3-dev \
|
||||
build-essential \
|
||||
\
|
||||
&& find /usr/local/lib/python3.6/ -type d -name tests -depth -exec rm -rf {} \; \
|
||||
&& find /usr/local/lib/python3.6/ -type d -name test -depth -exec rm -rf {} \; \
|
||||
&& find /usr/local/lib/python3.6/ -name __pycache__ -depth -exec rm -rf {} \; \
|
||||
&& find /usr/local/lib/python3.6/ -name "*.pyc" -depth -exec rm -f {} \; \
|
||||
\
|
||||
&& rm -fr \
|
||||
/tmp/* \
|
||||
/var/{cache,log}/* \
|
||||
/var/lib/apt/lists/*
|
||||
|
||||
# Copy root filesystem
|
||||
COPY rootfs /
|
||||
|
||||
# Get the code server binary
|
||||
COPY --from=codeserver /usr/local/bin/code-server /usr/local/bin/code-server
|
||||
|
||||
# Get the custom extensions
|
||||
COPY --from=vscode /root/.vscode/extensions /root/.code-server/extensions
|
||||
|
||||
# Build arguments
|
||||
ARG BUILD_DATE
|
||||
ARG BUILD_REF
|
||||
ARG BUILD_VERSION
|
||||
|
||||
# Labels
|
||||
LABEL \
|
||||
io.hass.name="Visual Studio Code" \
|
||||
io.hass.description="Visual Studio Code, accessible through the browser." \
|
||||
io.hass.arch="${BUILD_ARCH}" \
|
||||
io.hass.type="addon" \
|
||||
io.hass.version=${BUILD_VERSION} \
|
||||
maintainer="Franck Nijhof <frenck@addons.community>" \
|
||||
org.label-schema.description="Visual Studio Code, accessible through the browser." \
|
||||
org.label-schema.build-date=${BUILD_DATE} \
|
||||
org.label-schema.name="Visual Studio Code" \
|
||||
org.label-schema.schema-version="1.0" \
|
||||
org.label-schema.url="https://community.home-assistant.io/?u=frenck" \
|
||||
org.label-schema.usage="https://github.com/hassio-addons/addon-vscode/tree/master/README.md" \
|
||||
org.label-schema.vcs-ref=${BUILD_REF} \
|
||||
org.label-schema.vcs-url="https://github.com/hassio-addons/addon-vscode" \
|
||||
org.label-schema.vendor="Community Hass.io Add-ons"
|
Loading…
Add table
Add a link
Reference in a new issue