├── .github └── workflows │ └── main.yml ├── Dockerfile └── README.md /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: build openvscode-server 2 | 3 | on: 4 | push: 5 | branches: master 6 | 7 | jobs: 8 | buildx: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - 12 | name: Checkout 13 | uses: actions/checkout@v2 14 | - 15 | name: Set up QEMU 16 | uses: docker/setup-qemu-action@v1 17 | - 18 | name: Set up Docker Buildx 19 | id: buildx 20 | uses: docker/setup-buildx-action@v1 21 | - 22 | name: Available platforms 23 | run: echo ${{ steps.buildx.outputs.platforms }} 24 | - 25 | name: Login to Docker Hub 26 | uses: docker/login-action@v1 27 | with: 28 | username: ${{ secrets.DOCKERHUB_USERNAME }} 29 | password: ${{ secrets.DOCKERHUB_TOKEN }} 30 | - 31 | name: Login to GitHub Container Registry 32 | uses: docker/login-action@v1 33 | with: 34 | registry: ghcr.io 35 | username: ${{ github.repository_owner }} 36 | password: ${{ secrets.CR_PAT }} 37 | - 38 | name: Build and push 39 | uses: docker/build-push-action@v2 40 | with: 41 | context: . 42 | file: Dockerfile 43 | platforms: linux/amd64,linux/arm64 44 | push: true 45 | tags: | 46 | dictcp/openvscode-server:latest,ghcr.io/dictcp/openvscode-server:latest 47 | 48 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | # https://github.com/gitpod-io/openvscode-server/blob/main/.gitpod.Dockerfile 3 | FROM node:14 4 | RUN apt-get update \ 5 | && apt-get install -y --no-install-recommends \ 6 | xvfb x11vnc fluxbox dbus-x11 x11-utils x11-xserver-utils xdg-utils \ 7 | fbautostart xterm eterm gnome-terminal gnome-keyring seahorse nautilus \ 8 | libx11-dev libxkbfile-dev libsecret-1-dev libnotify4 libnss3 libxss1 \ 9 | libasound2 libgbm1 xfonts-base xfonts-terminus fonts-noto fonts-wqy-microhei \ 10 | fonts-droid-fallback vim-tiny nano libgconf2-dev libgtk-3-dev twm 11 | 12 | # https://github.com/gitpod-io/openvscode-server/blob/main/docs/development.md 13 | RUN git clone https://github.com/gitpod-io/openvscode-server && \ 14 | cd openvscode-server && \ 15 | git checkout openvscode-server-v1.61.0 && \ 16 | yarn && yarn gulp server-min 17 | 18 | # https://github.com/gitpod-io/openvscode-releases/blob/main/Dockerfile 19 | FROM ubuntu:18.04 20 | 21 | ARG USERNAME=openvscode-server 22 | ARG USER_UID=1000 23 | ARG USER_GID=$USER_UID 24 | 25 | RUN apt update && \ 26 | apt install -y git wget sudo && \ 27 | rm -rf /var/lib/apt/lists/* 28 | 29 | WORKDIR /home/ 30 | 31 | # Downloading the latest VSC Server release and extracting the release archive 32 | COPY --from=0 /server-pkg /home/openvscode-server 33 | 34 | # Creating the user and usergroup 35 | RUN groupadd --gid $USER_GID $USERNAME \ 36 | && useradd --uid $USER_UID --gid $USERNAME -m $USERNAME \ 37 | && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ 38 | && chmod 0440 /etc/sudoers.d/$USERNAME 39 | 40 | RUN chmod g+rw /home && \ 41 | mkdir -p /home/workspace && \ 42 | chown -R $USERNAME:$USERNAME /home/workspace && \ 43 | chown -R $USERNAME:$USERNAME /home/openvscode-server; 44 | 45 | USER $USERNAME 46 | 47 | WORKDIR /home/workspace/ 48 | 49 | ENV LANG C.UTF-8 50 | ENV LC_ALL C.UTF-8 51 | ENV HOME=/home/workspace 52 | ENV EDITOR=code 53 | ENV VISUAL=code 54 | ENV GIT_EDITOR="code --wait" 55 | ENV OPENVSCODE_SERVER_ROOT=/home/openvscode-server 56 | 57 | EXPOSE 3000 58 | 59 | ENTRYPOINT ${OPENVSCODE_SERVER_ROOT}/server.sh -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | > ⚠️ No further update on this build due to upstream offering on gitpod/openvscode-server ARMv7 and ARM64 images. 2 | 3 | # docker-openvscode-server 4 | 5 | It is an (alternative) arm64 and amd64 build of [openvscode-server](https://github.com/gitpod-io/openvscode-server). 6 | 7 | The arm64 build allows openvscode-server running on ARM64 platforms, including Raspberry Pi, AWS Graviton2 and Ampere. 8 | 9 | 10 | ## Getting started 11 | 12 | - Start the server: 13 | ```bash 14 | docker run -it --init -p 3000:3000 -v "$(pwd):/home/workspace:cached" dictcp/openvscode-server 15 | # Docker image is also available at ghcr.io/dictcp/openvscode-server 16 | ``` 17 | - Visit localhost:3000. 18 | 19 | --------------------------------------------------------------------------------