Renamed variables "QEMU_" to "QEMU_VM_" to avoid conflict with environment variables supported by QEMU

This commit is contained in:
Héctor Molinero Fernández 2021-08-02 21:09:46 +02:00
parent b261afcbd2
commit c4905ecf00
5 changed files with 28 additions and 28 deletions

View File

@ -60,16 +60,16 @@ RUN export DEBIAN_FRONTEND=noninteractive \
&& rm -rf /var/lib/apt/lists/*

# Environment
ENV QEMU_CPU=2
ENV QEMU_RAM=1024M
ENV QEMU_DISK_SIZE=16G
ENV QEMU_DISK_FORMAT=qcow2
ENV QEMU_KEYBOARD=en-us
ENV QEMU_NET_DEVICE=e1000
ENV QEMU_NET_OPTIONS=hostfwd=tcp::13389-:3389,hostfwd=tcp::15900-:5900
ENV QEMU_BOOT_ORDER=cd
ENV QEMU_BOOT_MENU=off
ENV QEMU_KVM=false
ENV QEMU_VM_CPU=2
ENV QEMU_VM_RAM=1024M
ENV QEMU_VM_DISK_SIZE=16G
ENV QEMU_VM_DISK_FORMAT=qcow2
ENV QEMU_VM_KEYBOARD=en-us
ENV QEMU_VM_NET_DEVICE=e1000
ENV QEMU_VM_NET_OPTIONS=hostfwd=tcp::13389-:3389,hostfwd=tcp::15900-:5900
ENV QEMU_VM_BOOT_ORDER=cd
ENV QEMU_VM_BOOT_MENU=off
ENV QEMU_VM_KVM=false

# Create some directories for QEMU
RUN mkdir -p /var/lib/qemu/iso/ /var/lib/qemu/images/

View File

@ -8,37 +8,37 @@ docker run --detach \
--name qemu-reactos \
--restart on-failure:3 \
--publish 127.0.0.1:6080:6080/tcp \
--privileged --env QEMU_KVM=true \
--privileged --env QEMU_VM_KVM=true \
docker.io/hectormolinero/qemu-reactos:latest
```
> The instance will be available through a web browser from: http://localhost:6080/vnc.html

## Environment variables
#### `QEMU_CPU`
#### `QEMU_VM_CPU`
Number of cores the VM is permitted to use (`2` by default).

#### `QEMU_RAM`
#### `QEMU_VM_RAM`
Amount of memory the VM is permitted to use (`1024M` by default).

#### `QEMU_DISK_SIZE`
#### `QEMU_VM_DISK_SIZE`
VM disk size (`16G` by default).

#### `QEMU_DISK_FORMAT`
#### `QEMU_VM_DISK_FORMAT`
VM disk format (`qcow2` by default).

#### `QEMU_KEYBOARD`
#### `QEMU_VM_KEYBOARD`
VM keyboard layout (`en-us` by default).

#### `QEMU_NET_DEVICE`
#### `QEMU_VM_NET_DEVICE`
VM network device (`e1000` by default).

#### `QEMU_BOOT_ORDER`
#### `QEMU_VM_BOOT_ORDER`
VM boot order (`cd` by default).

#### `QEMU_BOOT_MENU`
#### `QEMU_VM_BOOT_MENU`
VM boot menu (`off` by default).

#### `QEMU_KVM`
#### `QEMU_VM_KVM`
Start QEMU in KVM mode (`false` by default).
> The `--privileged` option is required to use KVM in the container.


2
run.sh
View File

@ -40,7 +40,7 @@ printf -- '%s\n' "Creating \"${CONTAINER_NAME:?}\" container..."
--publish '127.0.0.1:5900:5900/tcp' \
--publish '127.0.0.1:6080:6080/tcp' \
--publish '127.0.0.1:15900:15900/tcp' \
--privileged --env QEMU_KVM=true \
--privileged --env QEMU_VM_KVM=true \
"${IMAGE_NAME:?}" "$@" >/dev/null

printf -- '%s\n\n' 'Done!'

View File

@ -4,7 +4,7 @@ set -eu

# Create ReactOS disk
if [ ! -f /var/lib/qemu/images/reactos.img ]; then
qemu-img create -f "${QEMU_DISK_FORMAT:?}" /var/lib/qemu/images/reactos.img "${QEMU_DISK_SIZE:?}"
qemu-img create -f "${QEMU_VM_DISK_FORMAT:?}" /var/lib/qemu/images/reactos.img "${QEMU_VM_DISK_SIZE:?}"
fi

# Start all services

View File

@ -3,15 +3,15 @@
set -eu

QEMU=$(command -v qemu-system-x86_64)
QEMU_ARGS="${QEMU_ARGS-} -smp ${QEMU_CPU:?} -m ${QEMU_RAM:?}"
QEMU_ARGS="${QEMU_ARGS-} -smp ${QEMU_VM_CPU:?} -m ${QEMU_VM_RAM:?}"
QEMU_ARGS="${QEMU_ARGS-} -vga std -display vnc=:0"
QEMU_ARGS="${QEMU_ARGS-} -drive file=/var/lib/qemu/images/reactos.img,index=0,media=disk,format=${QEMU_DISK_FORMAT:?}"
QEMU_ARGS="${QEMU_ARGS-} -drive file=/var/lib/qemu/images/reactos.img,index=0,media=disk,format=${QEMU_VM_DISK_FORMAT:?}"
QEMU_ARGS="${QEMU_ARGS-} -drive file=/var/lib/qemu/iso/reactos.iso,index=2,media=cdrom,format=raw"
QEMU_ARGS="${QEMU_ARGS-} -boot order=${QEMU_BOOT_ORDER:?},menu=${QEMU_BOOT_MENU:?},splash-time=5000"
QEMU_ARGS="${QEMU_ARGS-} -netdev user,id=n0,${QEMU_NET_OPTIONS:?} -device ${QEMU_NET_DEVICE:?},netdev=n0"
QEMU_ARGS="${QEMU_ARGS-} -boot order=${QEMU_VM_BOOT_ORDER:?},menu=${QEMU_VM_BOOT_MENU:?},splash-time=5000"
QEMU_ARGS="${QEMU_ARGS-} -netdev user,id=n0,${QEMU_VM_NET_OPTIONS:?} -device ${QEMU_VM_NET_DEVICE:?},netdev=n0"
QEMU_ARGS="${QEMU_ARGS-} -usb -device usb-tablet"
QEMU_ARGS="${QEMU_ARGS-} -k ${QEMU_KEYBOARD:?}"
if [ "${QEMU_KVM:?}" = true ]; then QEMU_ARGS="${QEMU_ARGS-} -enable-kvm"; fi
QEMU_ARGS="${QEMU_ARGS-} -k ${QEMU_VM_KEYBOARD:?}"
if [ "${QEMU_VM_KVM:?}" = true ]; then QEMU_ARGS="${QEMU_ARGS-} -enable-kvm"; fi

cd /var/lib/qemu/
exec 2>&1