Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/components/ide/xterm/leeway.Dockerfile
2496 views
# Copyright (c) 2024 Gitpod GmbH. All rights reserved.
# Licensed under the GNU Affero General Public License (AGPL).
# See License.AGPL.txt in the project root for license information.
FROM node:20 as ide_installer

ARG XTERM_COMMIT

RUN apt update -y \
    && apt install python3 --no-install-recommends -y

RUN mkdir /build \
    && cd /build \
    && git init \
    && git remote add origin https://github.com/gitpod-io/xterm-web-ide \
    && git fetch origin $XTERM_COMMIT --depth=1 \
    && git reset --hard FETCH_HEAD
WORKDIR /build
RUN yarn --frozen-lockfile --network-timeout 180000
RUN yarn build \
    && cp -r dist/ /ide/ \
    && rm -rf dist/ \
    && yarn package:server \
    && echo ${XTERM_COMMIT} > dist/commit.txt \
    && cp -r dist/ out-server/ \
    && chmod -R ugo+x /ide \
    && cp icon.svg /ide/icon.svg

FROM scratch
# copy static web resources in first layer to serve from blobserve
COPY --chown=33333:33333 --from=ide_installer /ide/ /ide/xterm
COPY --chown=33333:33333 --from=ide_installer /build/out-server/ /ide/xterm
COPY --chown=33333:33333 --from=ide_installer /build/node_modules/node/bin/node /ide/xterm/bin/
COPY --chown=33333:33333 --from=ide_installer /build/startup.sh /ide/xterm
COPY --chown=33333:33333 --from=ide_installer /build/supervisor-ide-config.json /ide/

ARG XTERM_COMMIT
ARG XTERM_VERSION
LABEL "io.gitpod.ide.commit"=$XTERM_COMMIT
LABEL "io.gitpod.ide.version"=$XTERM_VERSION