forked from github-starred/komodo
* add terminal (ssh) apis * add core terminal exec method * terminal typescript client method * terminals WIP * backend for pty * add ts responses * about wire everything * add new blog * credit Skyfay * working * regen lock * 1.17.4-dev-1 * pty history * replace the test terminal impl with websocket (pty) * create api and improve frontend * fix fe * terminals * disable terminal api on periphery * implement write level terminal perms * remove unneeded * fix clippy * delete unneeded * fix waste cpu cycles * set TERM and COLORTERM for shell environment * fix xterm scrolling behavior * starship promp in periphery container terminal * kill all terminals on periphery shutdown signal * improve starship config and enable ssl in compose * use same scrollTop setter * fix periphery container distribution link * support custom command / args to init terminal * allow fully configurable init command * docker exec into container * add permissioning for container exec * add starship to core container * add delete all terminals * dev-2 * finished gen client * core need curl * hide Terminal trigger if disabled * 1.17.4
55 lines
1.5 KiB
Docker
55 lines
1.5 KiB
Docker
## All in one, multi stage compile + runtime Docker build for your architecture.
|
|
|
|
# Build Core
|
|
FROM rust:1.86.0-bullseye AS core-builder
|
|
|
|
WORKDIR /builder
|
|
COPY Cargo.toml Cargo.lock ./
|
|
COPY ./lib ./lib
|
|
COPY ./client/core/rs ./client/core/rs
|
|
COPY ./client/periphery ./client/periphery
|
|
COPY ./bin/core ./bin/core
|
|
|
|
# Compile app
|
|
RUN cargo build -p komodo_core --release
|
|
|
|
# Build Frontend
|
|
FROM node:20.12-alpine AS frontend-builder
|
|
WORKDIR /builder
|
|
COPY ./frontend ./frontend
|
|
COPY ./client/core/ts ./client
|
|
RUN cd client && yarn && yarn build && yarn link
|
|
RUN cd frontend && yarn link komodo_client && yarn && yarn build
|
|
|
|
# Final Image
|
|
FROM debian:bullseye-slim
|
|
|
|
COPY ./bin/core/starship.toml /config/starship.toml
|
|
COPY ./bin/core/debian-deps.sh .
|
|
RUN sh ./debian-deps.sh && rm ./debian-deps.sh
|
|
|
|
# Setup an application directory
|
|
WORKDIR /app
|
|
|
|
# Copy
|
|
COPY ./config/core.config.toml /config/config.toml
|
|
COPY --from=frontend-builder /builder/frontend/dist /app/frontend
|
|
COPY --from=core-builder /builder/target/release/core /usr/local/bin/core
|
|
COPY --from=denoland/deno:bin /deno /usr/local/bin/deno
|
|
|
|
# Set $DENO_DIR and preload external Deno deps
|
|
ENV DENO_DIR=/action-cache/deno
|
|
RUN mkdir /action-cache && \
|
|
cd /action-cache && \
|
|
deno install jsr:@std/yaml jsr:@std/toml
|
|
|
|
# Hint at the port
|
|
EXPOSE 9120
|
|
|
|
# Label for Ghcr
|
|
LABEL org.opencontainers.image.source=https://github.com/moghtech/komodo
|
|
LABEL org.opencontainers.image.description="Komodo Core"
|
|
LABEL org.opencontainers.image.licenses=GPL-3.0
|
|
|
|
ENTRYPOINT [ "core" ]
|