概要
Gitpodに Feature Preview の機能が追加されたので、メモメモ。
rootアクセスが出来るようになるのと docker 使えるようになるのが素晴らしいですね。これは便利になります。
利用するには、予め Gitpod にログインして Settings のところから Enable Feature Preview
を ON にしておく必要があります。
こんな感じ。
ただし、上の Feature Preview のページにも以下のように記載されています
Once you enable this, existing and new workspaces will automatically start with all beta features. Disabling this could make existing workspaces unstable.
このリスクを理解してからONにしましょう。
試してみる
root アクセス
ちょっと試してみました。
まずは root アクセス。
以前のGitpodでは、.gitpod.Dockerfile
以外では sudo が実行できませんでしたが、Feature PreviewをONにしたコンテナだと実行できるようになります。
gitpod /workspace/gitpod-playground $ mc bash: mc: command not found gitpod /workspace/gitpod-playground $ sudo apt install mc sudo: setrlimit(RLIMIT_CORE): Operation not permitted Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libicu65 Use 'sudo apt autoremove' to remove it. The following additional packages will be installed: libslang2 libssh2-1 mc-data Suggested packages: arj catdvi | texlive-binaries dbview djvulibre-bin epub-utils genisoimage gv libaspell-dev links | w3m | lynx odt2txt poppler-utils python python-boto python-tz xpdf | pdf-viewer The following NEW packages will be installed: libslang2 libssh2-1 mc mc-data 0 upgraded, 4 newly installed, 0 to remove and 133 not upgraded. Need to get 2,246 kB of archives. After this operation, 9,657 kB of additional disk space will be used. Do you want to continue? [Y/n] Y Get:1 http://archive.ubuntu.com/ubuntu focal/main amd64 libslang2 amd64 2.3.2-4 [429 kB] Get:2 http://archive.ubuntu.com/ubuntu focal/universe amd64 libssh2-1 amd64 1.8.0-2.1build1 [75.4 kB] Get:3 http://archive.ubuntu.com/ubuntu focal/universe amd64 mc-data all 3:4.8.24-2ubuntu1 [1,265 kB] Get:4 http://archive.ubuntu.com/ubuntu focal/universe amd64 mc amd64 3:4.8.24-2ubuntu1 [477 kB] Fetched 2,246 kB in 1s (1,521 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libslang2:amd64. (Reading database ... 33869 files and directories currently installed.) Preparing to unpack .../libslang2_2.3.2-4_amd64.deb ... Unpacking libslang2:amd64 (2.3.2-4) ... Selecting previously unselected package libssh2-1:amd64. Preparing to unpack .../libssh2-1_1.8.0-2.1build1_amd64.deb ... Unpacking libssh2-1:amd64 (1.8.0-2.1build1) ... Selecting previously unselected package mc-data. Preparing to unpack .../mc-data_3%3a4.8.24-2ubuntu1_all.deb ... Unpacking mc-data (3:4.8.24-2ubuntu1) ... Selecting previously unselected package mc. Preparing to unpack .../mc_3%3a4.8.24-2ubuntu1_amd64.deb ... Unpacking mc (3:4.8.24-2ubuntu1) ... Setting up libslang2:amd64 (2.3.2-4) ... Setting up mc-data (3:4.8.24-2ubuntu1) ... Setting up libssh2-1:amd64 (1.8.0-2.1build1) ... Setting up mc (3:4.8.24-2ubuntu1) ... Processing triggers for man-db (2.9.1-1) ... Processing triggers for mime-support (3.64ubuntu1) ... Processing triggers for hicolor-icon-theme (0.17-2) ... Processing triggers for libc-bin (2.31-0ubuntu7) ...
インストールできちゃいました。素晴らしい。
このあとで
$ mc
ってやると、ちゃんと midnight commander が起動します。
docker
dockerも使えるようになっています。試してみましょう。
まず、dockerデーモンを起動する必要があります。
gitpod /workspace/gitpod-playground $ sudo docker-up sudo: setrlimit(RLIMIT_CORE): Operation not permitted WARN[0000] missing prerequisite command=dockerd service=runOutsideNetns WARN[0000] missing prerequisite command=slirp4netns service=runOutsideNetns Reading package lists... Done Building dependency tree Reading state information... Done The following package was automatically installed and is no longer required: libicu65 Use 'sudo apt autoremove' to remove it. The following additional packages will be installed: apparmor bridge-utils cgroupfs-mount containerd dns-root-data dnsmasq-base iptables libidn11 libip6tc2 libnetfilter-conntrack3 libnfnetlink0 libnftnl11 netcat netcat-openbsd pigz runc ubuntu-fan Suggested packages: apparmor-profiles-extra apparmor-utils ifupdown aufs-tools btrfs-progs debootstrap docker-doc rinse zfs-fuse | zfsutils firewalld kmod nftables The following NEW packages will be installed: apparmor bridge-utils cgroupfs-mount containerd dns-root-data dnsmasq-base docker.io iptables libidn11 libip6tc2 libnetfilter-conntrack3 libnfnetlink0 libnftnl11 netcat netcat-openbsd pigz runc slirp4netns ubuntu-fan 0 upgraded, 19 newly installed, 0 to remove and 133 not upgraded. Need to get 70.8 MB of archives. After this operation, 340 MB of additional disk space will be used. Get:1 http://archive.ubuntu.com/ubuntu focal/universe amd64 pigz amd64 2.4-1 [57.4 kB] Get:2 http://archive.ubuntu.com/ubuntu focal/main amd64 netcat-openbsd amd64 1.206-1ubuntu1 [37.8 kB] Get:3 http://archive.ubuntu.com/ubuntu focal/main amd64 apparmor amd64 2.13.3-7ubuntu5 [494 kB] Get:4 http://archive.ubuntu.com/ubuntu focal/main amd64 libip6tc2 amd64 1.8.4-3ubuntu2 [19.2 kB] Get:5 http://archive.ubuntu.com/ubuntu focal/main amd64 libnfnetlink0 amd64 1.0.1-3build1 [13.8 kB] Get:6 http://archive.ubuntu.com/ubuntu focal/main amd64 libnetfilter-conntrack3 amd64 1.0.7-2 [41.4 kB] Get:7 http://archive.ubuntu.com/ubuntu focal/main amd64 libnftnl11 amd64 1.1.5-1 [57.8 kB] Get:8 http://archive.ubuntu.com/ubuntu focal/main amd64 iptables amd64 1.8.4-3ubuntu2 [390 kB] Get:9 http://archive.ubuntu.com/ubuntu focal/main amd64 bridge-utils amd64 1.6-2ubuntu1 [30.5 kB] Get:10 http://archive.ubuntu.com/ubuntu focal/universe amd64 cgroupfs-mount all 1.4 [6,320 B] Get:11 http://archive.ubuntu.com/ubuntu focal/main amd64 runc amd64 1.0.0~rc10-0ubuntu1 [2,549 kB] Get:12 http://archive.ubuntu.com/ubuntu focal/main amd64 containerd amd64 1.3.3-0ubuntu2 [27.8 MB] Get:13 http://archive.ubuntu.com/ubuntu focal/main amd64 dns-root-data all 2019052802 [5,300 B] Get:14 http://archive.ubuntu.com/ubuntu focal/main amd64 libidn11 amd64 1.33-2.2ubuntu2 [46.2 kB] Get:15 http://archive.ubuntu.com/ubuntu focal/main amd64 dnsmasq-base amd64 2.80-1.1ubuntu1 [314 kB] Get:16 http://archive.ubuntu.com/ubuntu focal/universe amd64 docker.io amd64 19.03.8-0ubuntu1 [38.9 MB] Get:17 http://archive.ubuntu.com/ubuntu focal/universe amd64 netcat all 1.206-1ubuntu1 [2,172 B] Get:18 http://archive.ubuntu.com/ubuntu focal/universe amd64 slirp4netns amd64 0.4.3-1 [74.3 kB] Get:19 http://archive.ubuntu.com/ubuntu focal/main amd64 ubuntu-fan all 0.12.13 [34.5 kB] ・ ・ 割愛 ・ ・ INFO[2020-12-11T04:01:46.746014627Z] Docker daemon commit=afacb8b7f0 graphdriver(s)=vfs version=19.03.8 INFO[2020-12-11T04:01:46.746229720Z] Daemon has completed initialization INFO[2020-12-11T04:01:46.769396766Z] API listen on /var/run/docker.sock
起動したら、新しいターミナルでdockerが使えます。
gitpod /workspace/gitpod-playground $ docker -v Docker version 19.03.8, build afacb8b7f0 gitpod /workspace/gitpod-playground $ go version go version go1.15 linux/amd64 gitpod /workspace/gitpod-playground $ docker run -it --rm golang:latest Unable to find image 'golang:latest' locally latest: Pulling from library/golang 756975cb9c7e: Pull complete d77915b4e630: Pull complete 5f37a0a41b6b: Pull complete 96b2c1e36db5: Pull complete 145393847161: Pull complete 3f8843661db9: Pull complete 218d240e42d4: Pull complete Digest: sha256:0dbb6056947855e8c1b1fb69d1b27f7cd004a48d821471e1a7e2731437879d44 Status: Downloaded newer image for golang:latest root@b96c67f4e0d3:/go# go version go version go1.15.6 linux/amd64
いやー、超便利。
参考情報
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ
サンプルコードは、以下の場所で公開しています。
- いろいろ備忘録日記サンプルソース置き場