mirror of
https://github.com/hectorm/docker-qemu-reactos
synced 2025-01-09 02:27:13 +00:00
Applied the same changes made to my other Haiku OS image
This commit is contained in:
parent
1fd9c253a0
commit
49e2d5e9ef
@ -59,16 +59,13 @@ RUN export DEBIAN_FRONTEND=noninteractive \
|
|||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Environment
|
# Environment
|
||||||
ENV QEMU_VM_CPU=2
|
ENV VM_CPU=2
|
||||||
ENV QEMU_VM_RAM=1024M
|
ENV VM_RAM=1024M
|
||||||
ENV QEMU_VM_DISK_SIZE=16G
|
ENV VM_DISK_SIZE=16G
|
||||||
ENV QEMU_VM_DISK_FORMAT=qcow2
|
ENV VM_KEYBOARD=en-us
|
||||||
ENV QEMU_VM_KEYBOARD=en-us
|
ENV VM_NET_OPTIONS=hostfwd=tcp::13389-:3389,hostfwd=tcp::15900-:5900
|
||||||
ENV QEMU_VM_NET_DEVICE=e1000
|
ENV VM_BOOT_ORDER=cd
|
||||||
ENV QEMU_VM_NET_OPTIONS=hostfwd=tcp::13389-:3389,hostfwd=tcp::15900-:5900
|
ENV VM_KVM=false
|
||||||
ENV QEMU_VM_BOOT_ORDER=cd
|
|
||||||
ENV QEMU_VM_BOOT_MENU=off
|
|
||||||
ENV QEMU_VM_KVM=false
|
|
||||||
|
|
||||||
# Create some directories for QEMU
|
# Create some directories for QEMU
|
||||||
RUN mkdir -p /var/lib/qemu/iso/ /var/lib/qemu/images/
|
RUN mkdir -p /var/lib/qemu/iso/ /var/lib/qemu/images/
|
||||||
@ -85,12 +82,7 @@ COPY --from=build --chown=root:root /tmp/reactos.iso /var/lib/qemu/iso/reactos.i
|
|||||||
# Copy services
|
# Copy services
|
||||||
COPY --chown=root:root ./scripts/service/ /etc/service/
|
COPY --chown=root:root ./scripts/service/ /etc/service/
|
||||||
|
|
||||||
# Copy scripts
|
# Copy bin scripts
|
||||||
COPY --chown=root:root ./scripts/bin/ /usr/local/bin/
|
COPY --chown=root:root ./scripts/bin/ /usr/local/bin/
|
||||||
|
|
||||||
# VNC
|
ENTRYPOINT ["/usr/local/bin/container-init"]
|
||||||
EXPOSE 5900/tcp
|
|
||||||
# noVNC
|
|
||||||
EXPOSE 6080/tcp
|
|
||||||
|
|
||||||
CMD ["/usr/local/bin/container-foreground-cmd"]
|
|
||||||
|
28
README.md
28
README.md
@ -6,39 +6,31 @@ A Docker image for the [ReactOS](https://www.reactos.org) operating system.
|
|||||||
```sh
|
```sh
|
||||||
docker run --detach \
|
docker run --detach \
|
||||||
--name qemu-reactos \
|
--name qemu-reactos \
|
||||||
--restart on-failure:3 \
|
|
||||||
--publish 127.0.0.1:6080:6080/tcp \
|
--publish 127.0.0.1:6080:6080/tcp \
|
||||||
--env QEMU_VM_KVM=true --device /dev/kvm \
|
--env VM_KVM=true --device /dev/kvm \
|
||||||
docker.io/hectormolinero/qemu-reactos:latest
|
docker.io/hectormolinero/qemu-reactos:latest
|
||||||
```
|
```
|
||||||
> The instance will be available through a web browser from: http://localhost:6080/vnc.html
|
|
||||||
|
> The instance can be accessed from:
|
||||||
|
> * 6080/TCP (noVNC): http://127.0.0.1:6080/vnc.html
|
||||||
|
|
||||||
## Environment variables
|
## Environment variables
|
||||||
#### `QEMU_VM_CPU`
|
#### `VM_CPU`
|
||||||
Number of cores the VM is permitted to use (`2` by default).
|
Number of cores the VM is permitted to use (`2` by default).
|
||||||
|
|
||||||
#### `QEMU_VM_RAM`
|
#### `VM_RAM`
|
||||||
Amount of memory the VM is permitted to use (`1024M` by default).
|
Amount of memory the VM is permitted to use (`1024M` by default).
|
||||||
|
|
||||||
#### `QEMU_VM_DISK_SIZE`
|
#### `VM_DISK_SIZE`
|
||||||
VM disk size (`16G` by default).
|
VM disk size (`16G` by default).
|
||||||
|
|
||||||
#### `QEMU_VM_DISK_FORMAT`
|
#### `VM_KEYBOARD`
|
||||||
VM disk format (`qcow2` by default).
|
|
||||||
|
|
||||||
#### `QEMU_VM_KEYBOARD`
|
|
||||||
VM keyboard layout (`en-us` by default).
|
VM keyboard layout (`en-us` by default).
|
||||||
|
|
||||||
#### `QEMU_VM_NET_DEVICE`
|
#### `VM_BOOT_ORDER`
|
||||||
VM network device (`e1000` by default).
|
|
||||||
|
|
||||||
#### `QEMU_VM_BOOT_ORDER`
|
|
||||||
VM boot order (`cd` by default).
|
VM boot order (`cd` by default).
|
||||||
|
|
||||||
#### `QEMU_VM_BOOT_MENU`
|
#### `VM_KVM`
|
||||||
VM boot menu (`off` by default).
|
|
||||||
|
|
||||||
#### `QEMU_VM_KVM`
|
|
||||||
Start QEMU in KVM mode (`false` by default).
|
Start QEMU in KVM mode (`false` by default).
|
||||||
> The `--device /dev/kvm` option is required to use KVM in the container.
|
> The `--device /dev/kvm` option is required to use KVM in the container.
|
||||||
|
|
||||||
|
3
run.sh
3
run.sh
@ -39,8 +39,7 @@ printf -- '%s\n' "Creating \"${CONTAINER_NAME:?}\" container..."
|
|||||||
--log-opt max-size=32m \
|
--log-opt max-size=32m \
|
||||||
--publish '127.0.0.1:5900:5900/tcp' \
|
--publish '127.0.0.1:5900:5900/tcp' \
|
||||||
--publish '127.0.0.1:6080:6080/tcp' \
|
--publish '127.0.0.1:6080:6080/tcp' \
|
||||||
--publish '127.0.0.1:15900:15900/tcp' \
|
--env VM_KVM=true --device /dev/kvm \
|
||||||
--env QEMU_VM_KVM=true --device /dev/kvm \
|
|
||||||
"${IMAGE_NAME:?}" "$@" >/dev/null
|
"${IMAGE_NAME:?}" "$@" >/dev/null
|
||||||
|
|
||||||
printf -- '%s\n\n' 'Done!'
|
printf -- '%s\n\n' 'Done!'
|
||||||
|
@ -4,7 +4,7 @@ set -eu
|
|||||||
|
|
||||||
# Create ReactOS disk
|
# Create ReactOS disk
|
||||||
if [ ! -f /var/lib/qemu/images/reactos.img ]; then
|
if [ ! -f /var/lib/qemu/images/reactos.img ]; then
|
||||||
qemu-img create -f "${QEMU_VM_DISK_FORMAT:?}" /var/lib/qemu/images/reactos.img "${QEMU_VM_DISK_SIZE:?}"
|
qemu-img create -f qcow2 /var/lib/qemu/images/reactos.img "${VM_DISK_SIZE:?}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Start all services
|
# Start all services
|
@ -2,20 +2,23 @@
|
|||||||
|
|
||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
QEMU=$(command -v qemu-system-x86_64)
|
set --
|
||||||
QEMU_ARGS="${QEMU_ARGS-} -smp ${QEMU_VM_CPU:?} -m ${QEMU_VM_RAM:?}"
|
set -- "$@" -smp "${VM_CPU:?}" -m "${VM_RAM:?}"
|
||||||
QEMU_ARGS="${QEMU_ARGS-} -vga std -display vnc=:0"
|
set -- "$@" -serial stdio -device VGA -display vnc=:0
|
||||||
QEMU_ARGS="${QEMU_ARGS-} -drive file=/var/lib/qemu/images/reactos.img,index=0,media=disk,format=${QEMU_VM_DISK_FORMAT:?}"
|
set -- "$@" -drive file=/var/lib/qemu/images/reactos.img,index=0,media=disk,format=qcow2
|
||||||
QEMU_ARGS="${QEMU_ARGS-} -drive file=/var/lib/qemu/iso/reactos.iso,index=2,media=cdrom,format=raw"
|
set -- "$@" -drive file=/var/lib/qemu/iso/reactos.iso,index=2,media=cdrom,format=raw
|
||||||
QEMU_ARGS="${QEMU_ARGS-} -boot order=${QEMU_VM_BOOT_ORDER:?},menu=${QEMU_VM_BOOT_MENU:?},splash-time=5000"
|
set -- "$@" -boot order="${VM_BOOT_ORDER:?}",menu=off
|
||||||
QEMU_ARGS="${QEMU_ARGS-} -netdev user,id=n0,${QEMU_VM_NET_OPTIONS:?} -device ${QEMU_VM_NET_DEVICE:?},netdev=n0"
|
set -- "$@" -netdev user,id=n0,"${VM_NET_OPTIONS:?}"
|
||||||
QEMU_ARGS="${QEMU_ARGS-} -usb -device usb-tablet"
|
set -- "$@" -device e1000,netdev=n0
|
||||||
QEMU_ARGS="${QEMU_ARGS-} -k ${QEMU_VM_KEYBOARD:?}"
|
set -- "$@" -usb -device usb-tablet
|
||||||
|
set -- "$@" -k "${VM_KEYBOARD:?}"
|
||||||
|
|
||||||
if [ "${QEMU_VM_KVM:?}" = true ] && [ -c /dev/kvm ]; then
|
if [ "${VM_KVM:?}" = true ] && [ -c /dev/kvm ]; then
|
||||||
QEMU_ARGS="${QEMU_ARGS-} -enable-kvm"
|
set -- "$@" -accel kvm
|
||||||
|
else
|
||||||
|
set -- "$@" -accel tcg
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd /var/lib/qemu/
|
cd /var/lib/qemu/
|
||||||
exec 2>&1
|
exec 2>&1
|
||||||
exec "${QEMU:?}" ${QEMU_ARGS:?}
|
exec /usr/bin/qemu-system-x86_64 "$@"
|
||||||
|
Loading…
Reference in New Issue
Block a user