Skip to content

Commit 9af868d

Browse files
authored
Merge pull request #206 from sickcodes/dyanmic-ram-default
Use RAM=max or RAM=half to suit all machines, dynamically.
2 parents 7c633bc + d4b8a0f commit 9af868d

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
|Version|Date|Notes|
22
|---|---|---|
3+
| |2021-03-17|Add RAM=max and RAM=half to dynamically select ram at runtime (DEFAULT).|
34
| |2021-03-06|Change envs to require --envs. Automatically enable --envs if --output-env is used. Same for plists, bootdisks. Fix help ugliness and sanity of generate serial scripts. Fix bootdisk not getting written to persistent file when using NOPICKER=true. NOPICKER=true is overridden by a custom plist now anyway. Remove useless case statements. Allow -e HEADLESS=true as human readable alternative to -e DISPLAY=:99.|
45
|4.1|2021-03-04|Add `-e MASTER_PLIST_URL` to all images to allow using your own remote plist.|
56
| |2021-03-03|Add `WIDTH` and `HEIGHT` to set the x and y resolutions, use in conjuction with serial numbers.|

Dockerfile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,12 +207,19 @@ RUN git clone --recurse-submodules --depth 1 --branch "${BRANCH}" "${REPO}"
207207
# for example, -e ADDITIONAL_PORTS=hostfwd=tcp::23-:23,
208208
ENV ADDITIONAL_PORTS=
209209
210+
# dynamic RAM options for runtime
211+
ENV RAM=max
212+
# ENV RAM=half
213+
210214
RUN touch Launch.sh \
211215
&& chmod +x ./Launch.sh \
212216
&& tee -a Launch.sh <<< '#!/bin/sh' \
213217
&& tee -a Launch.sh <<< 'set -eu' \
214218
&& tee -a Launch.sh <<< 'sudo chown $(id -u):$(id -g) /dev/kvm 2>/dev/null || true' \
215219
&& tee -a Launch.sh <<< 'sudo chown -R $(id -u):$(id -g) /dev/snd 2>/dev/null || true' \
220+
&& tee -a Launch.sh <<< '[[ "${RAM}" = max ]] && export RAM="$(("$(head -n1 /proc/meminfo | tr -dc "[:digit:]") / 1000000"))"' \
221+
&& tee -a Launch.sh <<< '[[ "${RAM}" = half ]] && export RAM="$(("$(head -n1 /proc/meminfo | tr -dc "[:digit:]") / 2000000"))"' \
222+
&& tee -a Launch.sh <<< 'sudo chown -R $(id -u):$(id -g) /dev/snd 2>/dev/null || true' \
216223
&& tee -a Launch.sh <<< 'exec qemu-system-x86_64 -m ${RAM:-2}000 \' \
217224
&& tee -a Launch.sh <<< '-cpu Penryn,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+aes,+xsave,+xsaveopt,check \' \
218225
&& tee -a Launch.sh <<< '-machine q35,accel=kvm:tcg \' \

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,9 +182,12 @@ docker start -i containerid
182182

183183
This is my favourite container. You can supply an existing disk image as a docker command line argument.
184184

185+
Pull images out using `sudo find /var/lib/docker -size +10G | grep mac_hdd_ng.img`
186+
185187
Supply your own local image with `-v "${PWD}/mac_hdd_ng.img:/image"` and use `sickcodes/docker-osx:naked`
186188

187-
- Naked image is for booting any existing .img file.
189+
- Naked image is for booting any existing .img file, e.g in the current working directory (`$PWD`)
190+
188191
- By default, this image has a variable called `NOPICKER` which is `"true"`. This skips the disk selection menu. Use `-e NOPICKER=false` or any other string than the word `true` to enter the boot menu. This lets you use other disks instead of skipping the boot menu, e.g. recovery disk or disk utility.
189192

190193
```bash
@@ -298,7 +301,6 @@ docker run -it \
298301
docker run -it \
299302
--device /dev/kvm \
300303
--device /dev/snd \
301-
-e RAM=4 \
302304
-p 50922:10022 \
303305
-v /tmp/.X11-unix:/tmp/.X11-unix \
304306
-e "DISPLAY=${DISPLAY:-:0.0}" \

0 commit comments

Comments
 (0)