macOS Container Machines
apple / container Public Notifications You must be signed in to change notification settings Fork 792 Star 27.7k main Copy path Blame More file actions More file actions Latest commit History History History 120 lines (85 loc) · 5.06 KB main Top Code Blame Raw Copy raw file Download raw file Outline Container machine provides a highly integrated Linux environment that works seamlessly on your Mac. Container machines are fast, lightweight and persistent. They are based on standard OCI images that can be built and shared. Host integrations such as automatic user and home directory sharing provide quick and easy access to your Linux environment no matter where you are in a terminal. Containers are typically modeled after an application. A container machine is modeled after a Linux environment. It runs the image's init system allowing you to register long running services or test your application under a process supervisor. A container machine automatically maps your username and home directory into the Linux environment. Your repositories and dotfiles are available on both platforms. Use editors and tools directly on macOS simultaneously building and running your application inside of the Linux environment. Edit on the Mac, build inside. Your repo lives in $HOME on macOS and is mounted at /Users/<username> inside the container machine. Use your macOS editor or IDE; compile and run inside your container machine. Use macOS-native tooling against Linux artifacts. Profilers, screenshot tools, browsers, and GUI debuggers on your Mac all same files the container machine sees — there is no copy step between "I built it" and "I am inspecting it". Real Linux services for testing. Run a database or whatever your stack needs as a system service — systemctl start postgresql works on images with systemd installed. One environment per target distro. Create as many container machines as you have target distros — alpine, ubuntu, debian. Each has the same $HOME and the same dotfiles from your Mac. Quickly test your application in various distributions. container machine create alpine: latest --name dev container machine run -n dev whoami # your host username, not root container machine run -n dev pwd # /home/<you> — your Mac home dir, mounted in container machine run -n dev # interactive shell; cd into your repos in $HOME container machine run is how you get a shell or run a single command. If the container machine is stopped, run boots it first. Changes take effect after the next stop and start: container machine set -n dev cpus=4 memory=8G container machine stop dev container machine run -n dev -- nproc Memory defaults to half of host memory.
Original story by Hacker News • View original source
Anonymous Discussion
Real voices. Real opinions. No censorship. Resets in 15 hours.
About NewsBin
Freedom of speech first. Anonymous discussion on today's news. All content resets every 24 hours.
No accounts. No tracking. No censorship. Just honest conversation.
Loading comments...