Compare commits
2 commits
75891d0d4e
...
fd82804710
Author | SHA1 | Date | |
---|---|---|---|
fd82804710 | |||
32ad286c2d |
3 changed files with 36 additions and 8 deletions
30
README.md
30
README.md
|
@ -1,10 +1,38 @@
|
|||
# Alpine Chroot
|
||||
|
||||
|
||||
### Installation
|
||||
|
||||
To create a base alpine chroot on any alpine system, run:
|
||||
|
||||
```sh
|
||||
chmod +x *.sh
|
||||
./alpine_init.sh
|
||||
```
|
||||
But this is assuming your current working directory is the directory of the
|
||||
cloned repository.
|
||||
|
||||
Assuming your current working directory is the directory of the cloned repository.
|
||||
When it is your first time in the chroot, run:
|
||||
|
||||
```sh
|
||||
./chroot_init.sh
|
||||
```
|
||||
|
||||
|
||||
### Usage
|
||||
|
||||
Most people will go "into" the chroot via:
|
||||
|
||||
```sh
|
||||
chroot /mnt/chroot sh
|
||||
```
|
||||
|
||||
But you must remember that you can just as well run any program in the chroot
|
||||
as:
|
||||
|
||||
```sh
|
||||
chroot /mnt/chroot <program>
|
||||
```
|
||||
|
||||
Because **chroots are not jails, containers, or sandboxes**. They simply change
|
||||
what the system sees as the "root" point of the file system.
|
||||
|
|
|
@ -7,7 +7,8 @@ mv repositories /etc/apk/repositories
|
|||
# setting the mirror
|
||||
apk add curl
|
||||
curl -LO http://nl.alpinelinux.org/alpine/MIRRORS.txt
|
||||
mirror=`grep $(head -n 1 /etc/apk/repositories) | sed -e "s/.*\/\///" | sed -e "s/\//\ /" | awk '{print $1}') MIRRORS.txt`
|
||||
repo_domain=`head -n 1 /etc/apk/repositories | sed -e "s/.*\/\///" | sed -e "s/\//\ /" | awk '{print $1}'`
|
||||
mirror=`grep $repo_domain MIRRORS.txt`
|
||||
rm MIRRORS.txt
|
||||
|
||||
# setting the chroot dir
|
||||
|
@ -19,9 +20,10 @@ arch=$(uname -m)
|
|||
|
||||
|
||||
# set up apk
|
||||
version="edge"
|
||||
version="2.12.7-r0"
|
||||
curl -LO ${mirror}/latest-stable/main/${arch}/apk-tools-static-${version}.apk
|
||||
tar -xzf apk-tools-static-*.apk
|
||||
rm apk-tools-static-*.apk
|
||||
|
||||
# install the alpine base installation onto the chroot
|
||||
./sbin/apk.static -X ${mirror}/latest-stable/main -U --allow-untrusted -p ${chroot_dir} --initdb add alpine-base
|
||||
|
@ -35,8 +37,9 @@ mount -o bind /sys ${chroot_dir}/sys
|
|||
cp -L /etc/resolv.conf ${chroot_dir}/etc/
|
||||
|
||||
# prepare the APK repositories
|
||||
branch=$version # change if you want a specific version
|
||||
branch="edge" # change if you want a specific version
|
||||
mkdir -p ${chroot_dir}/etc/apk
|
||||
echo "${mirror}/${branch}/main" > ${chroot_dir}/etc/apk/repositories
|
||||
|
||||
chroot ${chroot_dir} chroot_init.sh
|
||||
cp chroot_init.sh ${chroot_dir}/chroot_init.sh
|
||||
chroot ${chroot_dir} sh
|
||||
|
|
|
@ -13,6 +13,3 @@ rc-update add syslog boot
|
|||
rc-update add mount-ro shutdown
|
||||
rc-update add killprocs shutdown
|
||||
rc-update add savecache shutdown
|
||||
|
||||
# login shell
|
||||
sh -l
|
||||
|
|
Loading…
Reference in a new issue