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