3
0
mirror of https://github.com/pragma-/pbot.git synced 2026-02-12 12:27:57 +01:00
pbot/applets/pbot-vm/Dockerfile
2024-03-11 23:57:38 -04:00

34 lines
1.2 KiB
Docker

FROM perl:5.34
# Install system dependencies.
RUN apt-get update && apt-get install -y clang gcc clang g++ tcl ghc git cpanminus dos2unix
# Need the sources.
COPY . /opt/pbot
RUN cd /opt/pbot && cpanm -n --installdeps . --with-all-features --without-feature=compiler_vm_win32
# Serial emulation.
RUN apt-get install -y socat
RUN sed -i -e "s/\/dev\/ttyS2/\/tmp\/ttyS2/g" /opt/pbot/applets/pbot-vm/guest/bin/guest-server
RUN sed -i -e "s/\/dev\/ttyS3/\/tmp\/ttyS3/g" /opt/pbot/applets/pbot-vm/guest/bin/guest-server
# Line endings on other platforms.
RUN find . -type f -print0 | xargs -0 dos2unix /opt/pbot/applets/pbot-vm/guest/bin/*
RUN find . -type f -print0 | xargs -0 dos2unix /opt/pbot/applets/pbot-vm/host/bin/*
RUN dos2unix /opt/pbot/applets/pbot-vm/entrypoint.sh
RUN chmod +x /opt/pbot/applets/pbot-vm/guest/bin/*
RUN chmod +x /opt/pbot/applets/pbot-vm/host/bin/*
RUN chmod +x /opt/pbot/applets/pbot-vm/entrypoint.sh
# Setup the guest.
RUN cd /opt/pbot/applets/pbot-vm && ./guest/bin/setup-guest
# Prefer a non-root user.
RUN useradd -ms /bin/bash vm
# Just in case files are created in the working directory.
WORKDIR /home/vm
# Single entry point for both the host and the guest.
USER vm
ENTRYPOINT ["/opt/pbot/applets/pbot-vm/entrypoint.sh"]