Add code-server and devcontainer images, useful for VSCode
parent
b5aa67be61
commit
01e416f0dd
@ -0,0 +1,42 @@
|
||||
name: code-server
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- '.github/workflows/code-server.yml'
|
||||
- 'code-server/**'
|
||||
|
||||
jobs:
|
||||
|
||||
code-server:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Build image
|
||||
run: docker build
|
||||
code-server
|
||||
--tag code-server
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Push image
|
||||
run: |
|
||||
IMAGE_ID=ghcr.io/${{ github.repository_owner }}/code-server
|
||||
# Strip git ref prefix from version
|
||||
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
|
||||
# Use Docker `latest` tag convention
|
||||
[ "$VERSION" == "master" ] && VERSION=latest
|
||||
docker tag code-server $IMAGE_ID:$VERSION
|
||||
docker push $IMAGE_ID:$VERSION
|
@ -0,0 +1,42 @@
|
||||
name: devcontainer
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- '.github/workflows/devcontainer.yml'
|
||||
- 'devcontainer/**'
|
||||
|
||||
jobs:
|
||||
|
||||
devcontainer:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Build image
|
||||
run: docker build
|
||||
devcontainer
|
||||
--tag devcontainer
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Push image
|
||||
run: |
|
||||
IMAGE_ID=ghcr.io/${{ github.repository_owner }}/devcontainer
|
||||
# Strip git ref prefix from version
|
||||
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
|
||||
# Use Docker `latest` tag convention
|
||||
[ "$VERSION" == "master" ] && VERSION=latest
|
||||
docker tag devcontainer $IMAGE_ID:$VERSION
|
||||
docker push $IMAGE_ID:$VERSION
|
@ -0,0 +1,26 @@
|
||||
FROM debian:unstable-slim
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get -y --no-install-recommends install \
|
||||
curl ca-certificates \
|
||||
autoconf automake git make gcc g++ \
|
||||
erlang erlang-dev elixir rebar3 \
|
||||
libexpat1-dev libgd-dev libpam0g-dev \
|
||||
libsqlite3-dev libwebp-dev libyaml-dev \
|
||||
libssl-dev
|
||||
|
||||
RUN curl -fsSL https://code-server.dev/install.sh | sh
|
||||
|
||||
RUN addgroup vscode --gid 1000 \
|
||||
&& adduser --shell /bin/bash --ingroup vscode vscode -u 1000
|
||||
|
||||
USER vscode
|
||||
|
||||
RUN /usr/bin/code-server --install-extension erlang-ls.erlang-ls
|
||||
|
||||
RUN echo "export PATH=/workspaces/ejabberd/_build/relive:$PATH" >>/home/vscode/.bashrc
|
||||
RUN echo "COOKIE" >/home/vscode/.erlang.cookie
|
||||
RUN chmod 400 /home/vscode/.erlang.cookie
|
||||
|
||||
WORKDIR /workspaces/ejabberd
|
||||
ENTRYPOINT ["code-server", "--bind-addr", "0.0.0.0:5208", "--auth", "none", "/workspaces/ejabberd"]
|
@ -0,0 +1,65 @@
|
||||
# [Choice] Alpine version: 3.16, 3.15, 3.14, 3.13
|
||||
ARG VARIANT=latest
|
||||
FROM alpine:${VARIANT}
|
||||
|
||||
RUN apk upgrade --update musl \
|
||||
&& apk add \
|
||||
autoconf \
|
||||
automake \
|
||||
bash \
|
||||
build-base \
|
||||
curl \
|
||||
elixir \
|
||||
erlang-debugger \
|
||||
erlang-observer \
|
||||
erlang-odbc \
|
||||
erlang-reltool \
|
||||
expat-dev \
|
||||
file \
|
||||
gd-dev \
|
||||
git \
|
||||
jpeg-dev \
|
||||
libpng-dev \
|
||||
libwebp-dev \
|
||||
linux-pam-dev \
|
||||
openssl \
|
||||
openssl-dev \
|
||||
sqlite-dev \
|
||||
yaml-dev \
|
||||
zlib-dev
|
||||
|
||||
# [Option] Install zsh
|
||||
ARG INSTALL_ZSH="true"
|
||||
|
||||
# Install needed packages and setup non-root user. Use a separate RUN statement to add your own dependencies.
|
||||
ARG USERNAME=vscode
|
||||
ARG USER_UID=1000
|
||||
ARG USER_GID=$USER_UID
|
||||
ARG COMMON_SCRIPT_SOURCE="https://raw.githubusercontent.com/devcontainers/images/main/src/base-alpine/.devcontainer/library-scripts/common-alpine.sh"
|
||||
RUN apk update \
|
||||
&& curl -sSL ${COMMON_SCRIPT_SOURCE} -o /tmp/common-alpine.sh \
|
||||
&& ash /tmp/common-alpine.sh "${INSTALL_ZSH}" "${USERNAME}" "${USER_UID}" "${USER_GID}" \
|
||||
&& rm -rf /tmp/common-alpine.sh
|
||||
|
||||
RUN mix local.hex --force \
|
||||
&& mix local.rebar --force
|
||||
|
||||
RUN apk add \
|
||||
expat \
|
||||
freetds \
|
||||
gd \
|
||||
jpeg \
|
||||
libgd \
|
||||
libpng \
|
||||
libstdc++ \
|
||||
libwebp \
|
||||
linux-pam \
|
||||
ncurses-libs \
|
||||
openssl \
|
||||
sqlite \
|
||||
sqlite-libs \
|
||||
unixodbc \
|
||||
yaml \
|
||||
zlib \
|
||||
&& ln -fs /usr/lib/libtdsodbc.so.0 /usr/lib/libtdsodbc.so \
|
||||
&& rm -rf /var/cache/apk/*
|
Loading…
Reference in New Issue