Créez et gérez des machines virtuelles alpines légères sur macOS avec:
? Transfert de port sans couture
Partage de fichiers automatique
? Réseautage ponté
émulation Aarch64 et X86_64

L'objectif de ce projet est de permettre aux utilisateurs de macOS de:
macpine est destiné à être utilisé sur les macOS modernes. La prise en charge des versions plus anciennes de macOS et d'autres OSE peut varier.
brew install macpine # installs `alpine` command and `qemu` dependency automatically Téléchargez la dernière version binaire de votre système et ajoutez-le à votre $PATH en le déplaçant par EG /usr/local/bin/ :
arch= " $( [ ` uname -m ` = ' x86_64 ' ] && echo ' amd64 ' || echo ' arm64 ' ) " # detect architecture
wget " https://github.com/beringresearch/macpine/releases/latest/download/alpine_darwin_ $arch "
mv " alpine_darwin_ $arch " alpine
sudo chmod +x alpine
sudo mv alpine /usr/local/bin/
# export PATH="$PATH:/usr/local/bin"MacPine dépend de Qemu> = 7.22.0:
brew install qemu Vous pouvez également installer macpine via Macports:
sudo port install macpine La construction de Source nécessite un compilateur go Working et la course nécessite qemu :
brew install go qemu
git clone https://github.com/beringresearch/macpine
cd macpine
make # compiles the project into a local bin/ directory
make install # installs binaries to /usr/local/bin
# PREFIX=/some/other/path make install installs to /some/other/pathPour créer et démarrer une nouvelle instance:
alpine launch # launches with default parameters
alpine launch -a aarch64 # create an aarch64 instance
alpine launch -d 10G -c 4 -m 2048 # create an instance with a 10GB disk, 4 cpus, and 2GB of RAM
alpine launch -h # view all configuration options and defaultsInstance d'accès via SSH:
alpine launch -s 22 # launch an instance and expose SSH port to host port 22
alpine ssh instance-name # attach shell to instance (replace `instance-name` as appropriate)Exposer les ports d'instance supplémentaires pour héberger:
# launch an instance, expose SSH to host port 2022 and forward host ports 8888 and 5432 to instance ports 8888 and 5432
alpine launch -s 2022 -p 8888,5432
# launch an instance, expose SSH to host port 8022, forward host port 8081 to instance port 8082, and forward
# host port 8083 to instance port 8083
alpine launch -s 8022 -p 8081:8082,8083
# launch an instance, expose SSH to host port 9022, forward host port 9091 UDP to instance port 9091 UDP,
# and forward host port 9092 UDP to instance port 9093 UDP
alpine launch -s 9023 -p 9091u,9092:9093u Les instances peuvent être facilement emballées pour la sauvegarde ou le partage en tant que fichiers .tar.gz :
alpine list
NAME STATUS SSH PORTS ARCH PID TAGS
cheerful-result Running 2022 aarch64 26568
glittering-swing Running 3022 x86_64 57206 emulation,intelalpine publish cheerful-result Cela créera un fichier cheerful-result.tar.gz qui peut être importé comme:
# alpine delete cheerful-result
alpine import cheerful-result.tar.gzVoir tous les documents pour plus d'informations:
Create, control, and connect to Alpine instances.
Usage:
alpine [command]
Available Commands:
completion Generate shell autocompletions.
delete Delete instances.
edit Edit instance configurations.
exec execute a command on an instance over ssh.
help Help about any command
import Imports an instance archived with `alpine publish`.
info Display information about instances.
launch Create and start an instance.
list List instances.
pause Pause instances.
publish Publish instances.
rename Rename an instance.
restart Stop and start instances.
resume Unpause instances.
ssh Attach an interactive shell to an instance via ssh.
start Start instances.
stop Stop instances.
tag Add or remove tags from an instance.
Flags:
-h, --help help for alpine
Use "alpine [command] --help" for more information about a command. Plusieurs instances dans une commande: certaines commandes ( delete , edit , info , pause , publish , restart , resume , start , stop ) accepter plusieurs noms d'instance et répéteront l'opération sur chaque instance nommée unique une fois.
Tags: en utilisant alpine tag , les instances peuvent être marquées; Les balises peuvent être utilisées dans les commandes multi-instance (voir ci-dessus), par exemple alpine start +foobar commencera toutes les instances qui avaient été taguées foobar avec alpine tag instance-name foobar . Notez que la balise launchctl-autostart est utilisée pour le démarrage automatique des instances à la connexion.
Shell Autocletion: les fichiers de complétion de la commande shell (installés automatiquement avec brew install macpine ) peuvent être générés avec alpine completion [bash|zsh|fish|powershell] . Voir alpine completion -h ou la documentation d'achèvement pour plus d'informations.