Compare commits
2 commits
75891d0d4e
...
master
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
|
# Alpine Chroot
|
||||||
|
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
|
||||||
To create a base alpine chroot on any alpine system, run:
|
To create a base alpine chroot on any alpine system, run:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
chmod +x *.sh
|
chmod +x *.sh
|
||||||
./alpine_init.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
|
# setting the mirror
|
||||||
apk add curl
|
apk add curl
|
||||||
curl -LO http://nl.alpinelinux.org/alpine/MIRRORS.txt
|
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
|
rm MIRRORS.txt
|
||||||
|
|
||||||
# setting the chroot dir
|
# setting the chroot dir
|
||||||
|
@ -19,9 +20,10 @@ arch=$(uname -m)
|
||||||
|
|
||||||
|
|
||||||
# set up apk
|
# set up apk
|
||||||
version="edge"
|
version="2.12.7-r0"
|
||||||
curl -LO ${mirror}/latest-stable/main/${arch}/apk-tools-static-${version}.apk
|
curl -LO ${mirror}/latest-stable/main/${arch}/apk-tools-static-${version}.apk
|
||||||
tar -xzf apk-tools-static-*.apk
|
tar -xzf apk-tools-static-*.apk
|
||||||
|
rm apk-tools-static-*.apk
|
||||||
|
|
||||||
# install the alpine base installation onto the chroot
|
# 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
|
./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/
|
cp -L /etc/resolv.conf ${chroot_dir}/etc/
|
||||||
|
|
||||||
# prepare the APK repositories
|
# 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
|
mkdir -p ${chroot_dir}/etc/apk
|
||||||
echo "${mirror}/${branch}/main" > ${chroot_dir}/etc/apk/repositories
|
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 mount-ro shutdown
|
||||||
rc-update add killprocs shutdown
|
rc-update add killprocs shutdown
|
||||||
rc-update add savecache shutdown
|
rc-update add savecache shutdown
|
||||||
|
|
||||||
# login shell
|
|
||||||
sh -l
|
|
||||||
|
|
Loading…
Reference in a new issue