Skip to content

Publish Hermit environment #347

Publish Hermit environment

Publish Hermit environment #347

Workflow file for this run

name: Publish Hermit environment
on:
push:
branches:
- main
workflow_dispatch:
schedule:
- cron: '0 0 * * 6'
env:
CARGO_TERM_COLOR: always
jobs:
publish_image:
name: Publish container image
runs-on: ubuntu-latest
steps:
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: hermit-os
password: ${{ secrets.GITHUB_TOKEN }}
- name: Create dockerfile for Ubuntu
run: |
cat << END > Dockerfile
FROM rust:bookworm as builder
RUN apt update
RUN apt install -y --no-install-recommends libcap-ng-dev libseccomp-dev
RUN cargo install --git https://gitlab.com/virtio-fs/virtiofsd.git
FROM ubuntu:latest
RUN apt update
RUN apt install -y --no-install-recommends libcap-ng0 libseccomp2 qemu-system-x86 qemu-system-x86-microvm net-tools
COPY --from=builder /usr/local/cargo/bin/virtiofsd /usr/bin/virtiofsd
RUN chmod 0755 /usr/bin/virtiofsd
END
- name: Build and push container
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: ghcr.io/hermit-os/hermit_env:latest
- name: Create dockerfile for Alpine
run: |
cat << END > Dockerfile
FROM alpine:latest as builder
RUN apk add --no-cache rust cargo libseccomp-dev libcap-ng-dev
RUN cargo install --git https://gitlab.com/virtio-fs/virtiofsd.git
FROM alpine:latest
RUN apk add --no-cache qemu qemu-system-x86_64 libseccomp libcap-ng
COPY --from=builder /root/.cargo/bin/virtiofsd /usr/bin/virtiofsd
RUN chmod 0755 /usr/bin/virtiofsd
END
- name: Build and push container
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: ghcr.io/hermit-os/hermit_env_alpine:latest