buildahでcode-serverを作り直す

UBI8ベースで作り直し。

スクリプトを実行する前に、buildah unshareしてから。
追記:Docker Hubにpushしといた。podman pull rioriost/code-server
さらに追記:日本語拡張(ms-ceintl.vscode-language-pack-ja)入れてあるけど、バージョン違いで動かない。
さらに追記:うーん、結局、/home/coder/.local/に色々書き込みたいから、podman volumeしてマウントすることになり、code-server –install-extensionとかpip3 installとか、無駄かも。

#!/bin/bash

# make code-server container on ubi-micro with code-server RPM 

# settings
export CS_VERSION='3.12.0'
export CS_ARCH='amd64'

containername=code-server
wkcontainer=$(buildah from --name ${containername} registry.access.redhat.com/ubi8/ubi-micro)
wkmount=$(buildah mount ${wkcontainer})
common_opts=" -y --disableplugin=subscription-manager --installroot=${wkmount} --releasever 8 --setopt install_weak_deps=false --nodocs"

# install RPM packages
dnf $common_opts update
dnf $common_opts install https://github.com/cdr/code-server/releases/download/v${CS_VERSION}/code-server-${CS_VERSION}-${CS_ARCH}.rpm
dnf $common_opts install shadow-utils git sudo python36 python3-tkinter
dnf $common_opts clean all

# configure to run code-server
buildah run ${wkcontainer} useradd -G wheel coder
buildah run ${wkcontainer} sudo sh -c 'echo -e "coder\tALL=(ALL)\tNOPASSWD: ALL" > /etc/sudoers.d/020_sudo_for_coder'

# configure to expose code-server
buildah config --user "coder" \
               --workingdir "/home/coder" \
               --port "8080/tcp" \
               --entrypoint "/usr/bin/code-server --bind-addr 0.0.0.0:8080 ." \
               ${wkcontainer}

buildah umount ${wkcontainer}
buildah commit ${wkcontainer} ${containername}
buildah rm ${containername}

以下のようにVolumeを2つ作ってマウントする。

$ podman volume create code-server-local
$ podman volume create projects
$ podman run ...... -v code-server-local:/home/coder/.local:Z -v projects:/home/coder/projects:Z