ラベル XFCE の投稿を表示しています。 すべての投稿を表示
ラベル XFCE の投稿を表示しています。 すべての投稿を表示

2022年3月11日金曜日

k3sでDebian 11(Bullseye)のXfceデスクトップ環境をデプロイする

k3sでDebian 11(Bullseye)のXfceデスクトップ環境をデプロイするには、以下の手順を実行します。デスクトップ環境にはリモートデスクトップで接続します。
Raspberry Pi 4で動作しますが、イメージの作成など4-5時間ほどかかります(ネットワークやストレージの性能によって変わります)。
192.168.1.1の部分はk3sをインストールしたホストのIPアドレスに変更してください。

〇リモートデスクトップで接続したk3s上のDebian 11(Bullseye)デスクトップ環境

作成手順

1. プライベートレジストリ用ディレクトリ作成
sudo mkdir -p /var/privatereg

2. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
cat << EOF > local-privatereg-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-privatereg-pv
spec:
  capacity:
    storage: 50Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/privatereg
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているk3sがインストールされているホスト名になります。適宜変更してください。
sudo k3s kubectl apply -f ./local-privatereg-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
cat << EOF > local-privatereg-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-privatereg-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-privatereg-pv
EOF

sudo k3s kubectl apply -f ./local-privatereg-pvc.yml

4. Deploymentの作成
以下のコマンドで、作成したdebian11xfceのイメージと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > privatereg-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: privatereg-deployment
  labels:
    app: privatereg
spec:
  replicas: 1
  selector:
    matchLabels:
      app: privatereg
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: privatereg
    spec:
      containers:
      - name: privatereg
        image: registry:2
        ports:
        - containerPort: 5000
        env:
        - name: REGISTRY_HTTP_ADDR
          value: :5000
        - name: REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY
          value: /var/lib/registry
        volumeMounts:
        - name: privatereg-data
          mountPath: /var/lib/registry
      volumes:
      - name: privatereg-data
        persistentVolumeClaim:
          claimName: local-privatereg-pvc
EOF

sudo k3s kubectl apply -f ./privatereg-deployment.yml

5. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > privatereg-service.yml
apiVersion: v1
kind: Service
metadata:
  name: privatereg-service
spec:
  selector:
    app: privatereg
  type: LoadBalancer
  externalIPs:
  - 192.168.1.1 # 外部からアクセスできるk3sをインストールしたホストのIPを設定します。
  ports:
  - protocol: TCP
    port: 5000
    targetPort: 5000
EOF

sudo k3s kubectl apply -f ./privatereg-service.yml

6. プライベートレジストリ設定
k3sがインストールされているホスト上で以下のコマンドを実行します。
cat << EOF | sudo tee /etc/rancher/k3s/registries.yaml
mirrors:
  "192.168.1.1:5000":
    endpoint:
      - "http://192.168.1.1:5000"
EOF

sudo systemctl restart k3s.service

設定確認コマンド
sudo k3s crictl info

Dockerがインストールしてあるリモートマシン上で以下のコマンドを実行します。192.168.1.1の部分は、k3sのホストのIPに変更してください。
cat << EOF | sudo tee /etc/docker/daemon.json
{
    "insecure-registries" : ["192.168.1.1:5000"]
}
EOF

sudo systemctl restart docker

7. 以下のDockerfileを使用してイメージを作成・プッシュします
以下のコマンドをDockerがインストールしてあるリモートマシン上(もしくはk3sがインストールしてあるマシンにdockerもインストール)で実行します。
cat << EOF > Dockerfile
FROM debian:bullseye

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update \
  && apt-get -y install vim task-japanese locales-all \
  && echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
  && echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale \
  && apt-get -y install xfce4 dbus-x11 xfce4-terminal xrdp supervisor task-japanese-desktop ibus-mozc fonts-ipafont fonts-ipafont-gothic fonts-ipafont-mincho libreoffice \
  && echo '[supervisord]' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'nodaemon=true' >> /etc/supervisor/conf.d/sv.conf \
  && echo '[program:xrdp-sesman]' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'command=/usr/sbin/xrdp-sesman -nodaemon' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'autostart=true' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'autorestart=true' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'priority=100' >> /etc/supervisor/conf.d/sv.conf \
  && echo '[program:xrdp]' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'command=/usr/sbin/xrdp -nodaemon' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'autostart=true' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'autorestart=true' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'priority=200' >> /etc/supervisor/conf.d/sv.conf \
  && groupadd -g 1000 debian \
  && useradd -d /home/debian -m -s /bin/bash -u 1000 -g 1000 debian \
  && echo 'debian:debian' | chpasswd \
  && echo "debian ALL=NOPASSWD: ALL" >> /etc/sudoers \
  && apt-get clean && apt-get autoremove \
  && rm -rf /var/cache/apt/archives/* /var/lib/apt/lists/*

CMD ["bash", "-c", "/usr/bin/supervisord -c /etc/supervisor/supervisord.conf"]
EOF

・イメージ作成コマンド ※192.168.1.1の部分はk3sのホストのIPに変更してください。
docker build . -t 192.168.1.1:5000/debian11xfce:latest

・イメージのタグ付け
docker tag `docker images | grep '192.168.1.1:5000/debian11xfce' | awk '{print $3}'` 192.168.1.1:5000/debian11xfce:latest

・イメージをプライベートレジストリにプッシュ
docker push 192.168.1.1:5000/debian11xfce:latest

8. 永続ボリューム用のフォルダ作成
sudo mkdir -p /var/debian11xfce

sudo chown 1000:1000 /var/debian11xfce

9. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
cat << EOF > local-debian11xfce-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-debian11xfce-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/debian11xfce
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているk3sがインストールされているホスト名になります。適宜変更してください。
sudo k3s kubectl apply -f ./local-debian11xfce-pv.yml

10. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
cat << EOF > local-debian11xfce-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-debian11xfce-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-debian11xfce-pv
EOF

sudo k3s kubectl apply -f ./local-debian11xfce-pvc.yml

11. Deploymentの作成
以下のコマンドで、作成したdebian11xfceのイメージと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > debian11xfce-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: debian11xfce-deployment
  labels:
    app: mydebian11xfce
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mydebian11xfce
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: mydebian11xfce
    spec:
      containers:
      - name: mydebian11xfce
        image: 192.168.1.1:5000/debian11xfce:latest
        ports:
        - containerPort: 3389
        volumeMounts:
        - name: debian11xfce-data
          mountPath: /home/debian
      volumes:
      - name: debian11xfce-data
        persistentVolumeClaim:
          claimName: local-debian11xfce-pvc
EOF

sudo k3s kubectl apply -f ./debian11xfce-deployment.yml

12. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > debian11xfce-service.yml
apiVersion: v1
kind: Service
metadata:
  name: debian11xfce-service
spec:
  selector:
    app: mydebian11xfce
  type: LoadBalancer
  externalIPs:
  - 192.168.1.1 # 外部からアクセスできるk3sをインストールしたホストのIPを設定します。
  ports:
  - protocol: TCP
    port: 3389
    targetPort: 3389
EOF

sudo k3s kubectl apply -f ./debian11xfce-service.yml

13. WindowsのリモートデスクトップやLinux上のRemminaからk3sホストのIPを指定して接続します。
ユーザ名debian、パスワードdebianでログインしてください。

関連情報

・DockerでDebian 11のXfceデスクトップ環境を作成したい場合は以下を参照してください。
DockerでDebian 11(Bullseye)のXfceデスクトップ環境にリモートデスクトップで接続できるコンテナを作成する

2022年2月11日金曜日

Microk8sでDebian 11(Bullseye)のXfceデスクトップ環境をデプロイする

Microk8sでDebian 11(Bullseye)のXfceデスクトップ環境をデプロイするには、以下の手順を実行します。デスクトップ環境にはリモートデスクトップで接続します。

〇リモートデスクトップで接続したMicrok8s上のDebian 11(Bullseye)デスクトップ環境

作成手順

1. ビルトインレジストリの有効化(※既に実施している場合はスキップしてください)
Microk8sがインストールされているホスト上で以下のコマンドを実行します。
microk8s enable registry:size=50Gi
※registryプラグインが有効化してあるか不明な場合はmicrok8s statusコマンドを実行します。

Dockerがインストールしてあるリモートマシン上で以下のコマンドを実行します。192.168.1.1の部分は、Microk8sのホストのIPに変更してください。
cat << EOF | sudo tee /etc/docker/daemon.json
{
    "insecure-registries" : ["192.168.1.1:32000"]
}
EOF

sudo systemctl restart docker 

2. 以下のDockerfileを使用してイメージを作成・プッシュします
以下のコマンドをDockerがインストールしてあるリモートマシン上で実行します。
cat << EOF > Dockerfile
FROM debian:bullseye

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update \
  && apt-get -y install vim task-japanese locales-all \
  && echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
  && echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale \
  && apt-get -y install xfce4 dbus-x11 xfce4-terminal xrdp supervisor task-japanese-desktop ibus-mozc fonts-ipafont fonts-ipafont-gothic fonts-ipafont-mincho libreoffice \
  && echo '[supervisord]' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'nodaemon=true' >> /etc/supervisor/conf.d/sv.conf \
  && echo '[program:xrdp-sesman]' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'command=/usr/sbin/xrdp-sesman -nodaemon' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'autostart=true' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'autorestart=true' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'priority=100' >> /etc/supervisor/conf.d/sv.conf \
  && echo '[program:xrdp]' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'command=/usr/sbin/xrdp -nodaemon' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'autostart=true' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'autorestart=true' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'priority=200' >> /etc/supervisor/conf.d/sv.conf \
  && groupadd -g 1000 debian \
  && useradd -d /home/debian -m -s /bin/bash -u 1000 -g 1000 debian \
  && echo 'debian:debian' | chpasswd \
  && echo "debian ALL=NOPASSWD: ALL" >> /etc/sudoers \
  && apt-get clean && apt-get autoremove \
  && rm -rf /var/cache/apt/archives/* /var/lib/apt/lists/*

CMD ["bash", "-c", "/usr/bin/supervisord -c /etc/supervisor/supervisord.conf"]
EOF

・イメージ作成コマンド ※192.168.1.1の部分はMicrok8sのホストのIPに変更してください。
docker build . -t 192.168.1.1:32000/debian11xfce:latest

・イメージのタグ付け
docker tag `docker images | grep '192.168.1.1:32000/debian11xfce' | awk '{print $3}'` 192.168.1.1:32000/debian11xfce:latest

・イメージをビルトインレジストリにプッシュ
docker push 192.168.1.1:32000/debian11xfce:latest

・Microk8sのサーバ上で、イメージが登録されたことを確認するには以下のコマンドを実行します。
wget http://192.168.1.1:32000/v2/_catalog -O -

3. 永続ボリューム用のフォルダ作成
sudo mkdir -p /var/debian11xfce

sudo chown 1000:1000 /var/debian11xfce

4. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
cat << EOF > local-debian11xfce-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-debian11xfce-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/debian11xfce
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているMicrok8sがインストールされているホスト名になります。適宜変更してください。
microk8s kubectl apply -f ./local-debian11xfce-pv.yml

5. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
cat << EOF > local-debian11xfce-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-debian11xfce-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-debian11xfce-pv
EOF

microk8s kubectl apply -f ./local-debian11xfce-pvc.yml

6. Deploymentの作成
以下のコマンドで、作成したdebian11xfceのイメージと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > debian11xfce-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: debian11xfce-deployment
  labels:
    app: mydebian11xfce
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mydebian11xfce
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: mydebian11xfce
    spec:
      containers:
      - name: mydebian11xfce
        image: localhost:32000/debian11xfce:latest
        ports:
        - containerPort: 3389
        volumeMounts:
        - name: debian11xfce-data
          mountPath: /home/debian
      volumes:
      - name: debian11xfce-data
        persistentVolumeClaim:
          claimName: local-debian11xfce-pvc
EOF

microk8s kubectl apply -f ./debian11xfce-deployment.yml

7. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > debian11xfce-service.yml
apiVersion: v1
kind: Service
metadata:
  name: debian11xfce-service
spec:
  selector:
    app: mydebian11xfce
  type: LoadBalancer
  externalIPs:
  - 192.168.1.1 # 外部からアクセスできるMicrok8sをインストールしたホストのIPを設定します。
  ports:
  - protocol: TCP
    port: 3389
    targetPort: 3389
EOF

microk8s kubectl apply -f ./debian11xfce-service.yml

8. WindowsのリモートデスクトップやLinux上のRemminaからMicrok8sホストのIPを指定して接続します。
ユーザ名debian、パスワードdebianでログインしてください。

関連情報

・DockerでDebian 11のXfceデスクトップ環境を作成したい場合は以下を参照してください。
DockerでDebian 11(Bullseye)のXfceデスクトップ環境にリモートデスクトップで接続できるコンテナを作成する

2022年1月30日日曜日

XFCEデスクトップ環境でログイン時に任意の画像を壁紙に設定する

XFCEデスクトップ環境でログイン時に任意の画像を壁紙に設定するには、以下のサンプルのように~/.config/autostartフォルダに.desktopファイルを作成します。

設定手順

以下のコマンドで任意の画像が壁紙として設定されるようにします。
mkdir -p ~/.config/autostart

※ Execパラメータに実行するプログラムを指定します。詳細はhttps://specifications.freedesktop.org/desktop-entry-spec/latest を参照してください。
cat << EOF > ~/.config/autostart/wallpaper.desktop
[Desktop Entry]
Encoding=UTF-8
Name=wallpaper
Exec=/usr/bin/xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorrdp0/workspace0/last-image -s /home/debian/画像/yellow_flower_photo.jpg
Terminal=false
Type=Application
EOF

〇実行例

2022年1月27日木曜日

MinikubeでDebian 11(Bullseye)のXfceデスクトップ環境をデプロイする

MinikubeでDebian 11(Bullseye)のXfceデスクトップ環境をデプロイするには、以下の手順を実行します。デスクトップ環境にはリモートデスクトップで接続します。

〇リモートデスクトップで接続したMinikube上のDebian 11(Bullseye)デスクトップ環境

作成手順

1. 以下のDockerfileを使用してイメージを作成します
# ホスト側で実行して、dockerの向き先をminikubeにします
eval $(minikube -p minikube docker-env)

cat << EOF > Dockerfile
FROM debian:bullseye

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update \
  && apt-get -y install vim task-japanese locales-all \
  && echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
  && echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale \
  && apt-get -y install xfce4 dbus-x11 xfce4-terminal xrdp supervisor task-japanese-desktop ibus-mozc fonts-ipafont fonts-ipafont-gothic fonts-ipafont-mincho libreoffice \
  && echo '[supervisord]' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'nodaemon=true' >> /etc/supervisor/conf.d/sv.conf \
  && echo '[program:xrdp-sesman]' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'command=/usr/sbin/xrdp-sesman -nodaemon' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'autostart=true' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'autorestart=true' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'priority=100' >> /etc/supervisor/conf.d/sv.conf \
  && echo '[program:xrdp]' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'command=/usr/sbin/xrdp -nodaemon' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'autostart=true' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'autorestart=true' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'priority=200' >> /etc/supervisor/conf.d/sv.conf \
  && groupadd -g 1000 debian \
  && useradd -d /home/debian -m -s /bin/bash -u 1000 -g 1000 debian \
  && echo 'debian:debian' | chpasswd \
  && echo "debian ALL=NOPASSWD: ALL" >> /etc/sudoers \
  && apt-get clean && apt-get autoremove \
  && rm -rf /var/cache/apt/archives/* /var/lib/apt/lists/*

CMD ["bash", "-c", "/usr/bin/supervisord -c /etc/supervisor/supervisord.conf"]
EOF

# イメージ作成コマンド
docker build --no-cache -t debian11xfce .

2. 永続ボリューム用のフォルダ作成
minikube ssh

sudo mkdir -p /var/debian11xfce

sudo chmod a+w /var/debian11xfce

exit

3. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
cat << EOF > local-debian11xfce-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-debian11xfce-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/debian11xfce
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - minikube
EOF

kubectl apply -f ./local-debian11xfce-pv.yml

4. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
cat << EOF > local-debian11xfce-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-debian11xfce-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-debian11xfce-pv
EOF

kubectl apply -f ./local-debian11xfce-pvc.yml

5. Deploymentの作成
以下のコマンドで、作成したdebian11xfceのイメージと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > debian11xfce-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: debian11xfce-deployment
  labels:
    app: mydebian11xfce
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mydebian11xfce
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: mydebian11xfce
    spec:
      containers:
      - name: mydebian11xfce
        image: debian11xfce
        imagePullPolicy: Never # ローカルイメージを使用する
        ports:
        - containerPort: 3389
        volumeMounts:
        - name: debian11xfce-data
          mountPath: /home/debian
      volumes:
      - name: debian11xfce-data
        persistentVolumeClaim:
          claimName: local-debian11xfce-pvc
EOF

kubectl apply -f ./debian11xfce-deployment.yml

6. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > debian11xfce-service.yml
apiVersion: v1
kind: Service
metadata:
  name: debian11xfce-service
spec:
  selector:
    app: mydebian11xfce
  ports:
  - protocol: TCP
    port: 3389
    targetPort: 3389
EOF

kubectl apply -f ./debian11xfce-service.yml

7. Port-Fowardingで外部からアクセスできるようにする
kubectl port-forward --address 0.0.0.0 service/debian11xfce-service 3389:3389

8. WindowsのリモートデスクトップやLinux上のRemminaからMinikubeホストのIPを指定して接続します。
ユーザ名debian、パスワードdebianでログインしてください。

関連情報

・Docker版は以下のページを参照してください。
DockerでDebian 11(Bullseye)のXfceデスクトップ環境にリモートデスクトップで接続できるコンテナを作成する

2022年1月26日水曜日

DockerでDebian 11(Bullseye)のXfceデスクトップ環境にリモートデスクトップで接続できるコンテナを作成する

DockerでDebian 11(Bullseye)のXfceデスクトップ環境にリモートデスクトップで接続できるコンテナを作成するには、以下の手順を実行します。

〇リモートデスクトップで接続したDocker上のDebian 11(Bullseye)デスクトップ環境

作成手順

1. 以下のDockerfileを使用してイメージを作成します
Dockerfile
FROM debian:bullseye

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update \
  && apt-get -y install vim task-japanese locales-all \
  && echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
  && echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale \
  && apt-get -y install xfce4 dbus-x11 xfce4-terminal xrdp supervisor task-japanese-desktop ibus-mozc fonts-ipafont fonts-ipafont-gothic fonts-ipafont-mincho libreoffice \
  && echo '[supervisord]' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'nodaemon=true' >> /etc/supervisor/conf.d/sv.conf \
  && echo '[program:xrdp-sesman]' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'command=/usr/sbin/xrdp-sesman -nodaemon' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'autostart=true' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'autorestart=true' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'priority=100' >> /etc/supervisor/conf.d/sv.conf \
  && echo '[program:xrdp]' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'command=/usr/sbin/xrdp -nodaemon' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'autostart=true' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'autorestart=true' >> /etc/supervisor/conf.d/sv.conf \
  && echo 'priority=200' >> /etc/supervisor/conf.d/sv.conf \
  && groupadd -g 1000 debian \
  && useradd -d /home/debian -m -s /bin/bash -u 1000 -g 1000 debian \
  && echo 'debian:debian' | chpasswd \
  && echo "debian ALL=NOPASSWD: ALL" >> /etc/sudoers \
  && apt-get clean && apt-get autoremove \
  && rm -rf /var/cache/apt/archives/* /var/lib/apt/lists/*

CMD ["bash", "-c", "/usr/bin/supervisord -c /etc/supervisor/supervisord.conf"]

・イメージ作成コマンド
docker build --no-cache -t debian11xfce .

2. 作成したイメージを使用してコンテナを実行します。
docker run --rm -v `pwd`:/home/debian -p 3389:3389 debian11xfce

3. WindowsのリモートデスクトップやLinux上のRemminaからDockerホストのIPを指定して接続します。
ユーザ名debian、パスワードdebianでログインしてください。

※イメージを削除する場合は、以下のコマンドを実行します
docker rmi debian11xfce

関連情報

・Minikube版Xfceデスクトップは以下のページを参照してください。
MinikubeでDebian 11(Bullseye)のXfceデスクトップ環境をデプロイする

・Microk8s版Xfceデスクトップは以下のページを参照してください。
Microk8sでDebian 11(Bullseye)のXfceデスクトップ環境をデプロイする

・MATEデスクトップ版
DockerでDebian 11(Bullseye)のMATEデスクトップ環境にリモートデスクトップで接続できるコンテナを作成する

2021年1月29日金曜日

DockerでThonnyとXfce、TigerVNCがインストールされたコンテナ(Ubuntu20.04)を作成する

Thonnyは初心者向けPython開発環境です。DockerでThonnyがインストール済みのXfceデスクトップ環境を構築し、VNCクライアントで接続することができます。

〇Thonnyの画面
TigerVNCがインストールされているので、VNCクライアントで接続することができます。VNCパスワードはubuntuです。

イメージのビルド

以下のコマンドを実行してイメージをビルドします。
docker build --no-cache -t ub2004vncxfcethonny .

Dockerfile
from ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive
run apt-get update \
  && apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade \
  && apt-get install -y language-pack-ja-base language-pack-ja \
  && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
  && echo 'Asia/Tokyo' > /etc/timezone \
  && locale-gen ja_JP.UTF-8 \
  && echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
  && echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale
env LANG=ja_JP.UTF-8 \
   LANGUAGE=ja_JP.UTF-8 \
   LC_ALL=ja_JP.UTF-8
run apt-get -y install \
      xubuntu-desktop \
      xfce4-terminal \
      tigervnc-standalone-server \
      expect \
      fcitx-mozc \
      fonts-ipafont-gothic \
      fonts-ipafont-mincho \
      vim \
      gvfs-bin \
      xdg-utils \
      thonny \
  && apt-get -y remove --purge light-locker \
  && apt-get -y install gnome-screensaver \
  && im-config -n fcitx \
  && apt-get clean \
  && rm -rf /var/cache/apt/archives/* \
  && rm -rf /var/lib/apt/lists/* \
  && groupadd -g 1000 ubuntu \
  && useradd -d /home/ubuntu -m -s /bin/bash -u 1000 -g 1000 ubuntu \
  && echo 'ubuntu:ubuntu' | chpasswd \
  && echo "ubuntu ALL=NOPASSWD: ALL" >> /etc/sudoers \
  && echo 'spawn "tigervncpasswd"' >> /tmp/initpass \
  && echo 'expect "Password:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Verify:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Would you like to enter a view-only password (y/n)?"' >> /tmp/initpass \
  && echo 'send "n\\r"' >> /tmp/initpass \
  && echo 'expect eof' >> /tmp/initpass \
  && echo 'exit' >> /tmp/initpass \
  && sudo -u ubuntu -H /bin/bash -c '/usr/bin/expect /tmp/initpass' \
  && mkdir -p /home/ubuntu/.vnc \
  && chown ubuntu:ubuntu /home/ubuntu/.vnc \
  && echo '#!/bin/sh' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LANG=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LC_ALL=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export XMODIFIERS=@im=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export GTK_IM_MODULE=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'fcitx -r -d &' >> /home/ubuntu/.vnc/xstartup \
  && echo 'exec startxfce4' >> /home/ubuntu/.vnc/xstartup \
  && chmod +x /home/ubuntu/.vnc/xstartup \
  && mkdir -p /home/ubuntu/data \
  && chown -R ubuntu:ubuntu /home/ubuntu/data

expose 5901
volume ["/home/ubuntu/data"]
cmd /usr/bin/vncserver :1 -localhost no -geometry 1152x864 -alwaysshared -fg

コンテナの実行

コンテナを実行するには、以下のコマンドを実行します。
docker run -it -v `pwd`:/home/ubuntu/data -p 5901:5901 -u ubuntu --privileged ub2004vncxfcethonny

関連情報

・Thonnyのプロジェクトサイト
https://thonny.org/

2021年1月3日日曜日

DockerでgretlとXfce、TigerVNCがインストールされたコンテナ(Ubuntu20.04)を作成する

gretlはオープンソースの統計解析アプリケーションです。Dockerでgretlがインストール済みのXfceデスクトップ環境を構築し、VNCクライアントで接続することができます。

〇gretlの画面
TigerVNCがインストールされているので、VNCクライアントで接続することができます。VNCパスワードはubuntuです。

イメージのビルド

以下のコマンドを実行してイメージをビルドします。
docker build --no-cache -t ub2004vncxfcegretl .

Dockerfile
from ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive
run apt-get update \
  && apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade \
  && apt-get install -y language-pack-ja-base language-pack-ja \
  && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
  && echo 'Asia/Tokyo' > /etc/timezone \
  && locale-gen ja_JP.UTF-8 \
  && echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
  && echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale
env LANG=ja_JP.UTF-8 \
   LANGUAGE=ja_JP.UTF-8 \
   LC_ALL=ja_JP.UTF-8
run apt-get -y install \
      xubuntu-desktop \
      xfce4-terminal \
      tigervnc-standalone-server \
      expect \
      fcitx-mozc \
      fonts-ipafont-gothic \
      fonts-ipafont-mincho \
      vim \
      gvfs-bin \
      xdg-utils \
      gretl \
  && apt-get -y remove --purge light-locker \
  && apt-get -y install gnome-screensaver \
  && im-config -n fcitx \
  && apt-get clean \
  && rm -rf /var/cache/apt/archives/* \
  && rm -rf /var/lib/apt/lists/* \
  && groupadd -g 1000 ubuntu \
  && useradd -d /home/ubuntu -m -s /bin/bash -u 1000 -g 1000 ubuntu \
  && echo 'ubuntu:ubuntu' | chpasswd \
  && echo "ubuntu ALL=NOPASSWD: ALL" >> /etc/sudoers \
  && echo 'spawn "tigervncpasswd"' >> /tmp/initpass \
  && echo 'expect "Password:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Verify:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Would you like to enter a view-only password (y/n)?"' >> /tmp/initpass \
  && echo 'send "n\\r"' >> /tmp/initpass \
  && echo 'expect eof' >> /tmp/initpass \
  && echo 'exit' >> /tmp/initpass \
  && sudo -u ubuntu -H /bin/bash -c '/usr/bin/expect /tmp/initpass' \
  && mkdir -p /home/ubuntu/.vnc \
  && chown ubuntu:ubuntu /home/ubuntu/.vnc \
  && echo '#!/bin/sh' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LANG=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LC_ALL=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export XMODIFIERS=@im=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export GTK_IM_MODULE=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'fcitx -r -d &' >> /home/ubuntu/.vnc/xstartup \
  && echo 'exec startxfce4' >> /home/ubuntu/.vnc/xstartup \
  && chmod +x /home/ubuntu/.vnc/xstartup \
  && mkdir -p /home/ubuntu/data \
  && chown -R ubuntu:ubuntu /home/ubuntu/data

expose 5901
volume ["/home/ubuntu/data"]
cmd /usr/bin/vncserver :1 -localhost no -geometry 1152x864 -alwaysshared -fg

コンテナの実行

コンテナを実行するには、以下のコマンドを実行します。
docker run -it -v `pwd`:/home/ubuntu/data -p 5901:5901 -u ubuntu --privileged ub2004vncxfcegretl

関連情報

・gretlに関する他の記事は、こちらを参照してください。

2021年1月2日土曜日

DockerでGantt ProjectとXfce、TigerVNCがインストールされたコンテナ(Ubuntu20.04)を作成する

Gantt ProjectはMicrosoft Projectのようなプロジェクト管理ソフトウェアです。DockerでGantt Projectがインストール済みのXfceデスクトップ環境を構築し、VNCクライアントで接続することができます。

〇Gantt Projectの画面
TigerVNCがインストールされているので、VNCクライアントで接続することができます。VNCパスワードはubuntuです。

イメージのビルド

以下のコマンドを実行してイメージをビルドします。
docker build --no-cache -t ub2004vncxfceganttproject .

Dockerfile
from ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive
run apt-get update \
  && apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade \
  && apt-get install -y language-pack-ja-base language-pack-ja \
  && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
  && echo 'Asia/Tokyo' > /etc/timezone \
  && locale-gen ja_JP.UTF-8 \
  && echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
  && echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale
env LANG=ja_JP.UTF-8 \
   LANGUAGE=ja_JP.UTF-8 \
   LC_ALL=ja_JP.UTF-8
run apt-get -y install \
      xubuntu-desktop \
      xfce4-terminal \
      tigervnc-standalone-server \
      expect \
      fcitx-mozc \
      fonts-ipafont-gothic \
      fonts-ipafont-mincho \
      vim \
      gvfs-bin \
      xdg-utils \
      openjdk-11-jdk \
  && wget https://sourceforge.net/projects/ganttproject/files/ganttproject-2.8.11/ganttproject-2.8.11-r2396.zip \
  && unzip -d /opt ganttproject-2.8.11-r2396.zip \
  && echo '[Desktop Entry]' >> /usr/share/applications/ganttproject.desktop \
  && echo 'Version=1.0' >> /usr/share/applications/ganttproject.desktop \
  && echo 'Type=Application' >> /usr/share/applications/ganttproject.desktop \
  && echo 'Terminal=false' >> /usr/share/applications/ganttproject.desktop \
  && echo 'Environment=QT_IM_MODULE=fcitx' >> /usr/share/applications/ganttproject.desktop \
  && echo 'Exec=/opt/ganttproject-2.8.11-r2396/ganttproject' >> /usr/share/applications/ganttproject.desktop \
  && echo 'Name=GanttProject' >> /usr/share/applications/ganttproject.desktop \
  && echo 'Categories=Development;' >> /usr/share/applications/ganttproject.desktop \
  && apt-get -y remove --purge light-locker \
  && apt-get -y install gnome-screensaver \
  && im-config -n fcitx \
  && apt-get clean \
  && rm -rf /var/cache/apt/archives/* \
  && rm -rf /var/lib/apt/lists/* \
  && groupadd -g 1000 ubuntu \
  && useradd -d /home/ubuntu -m -s /bin/bash -u 1000 -g 1000 ubuntu \
  && echo 'ubuntu:ubuntu' | chpasswd \
  && echo "ubuntu ALL=NOPASSWD: ALL" >> /etc/sudoers \
  && echo 'spawn "tigervncpasswd"' >> /tmp/initpass \
  && echo 'expect "Password:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Verify:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Would you like to enter a view-only password (y/n)?"' >> /tmp/initpass \
  && echo 'send "n\\r"' >> /tmp/initpass \
  && echo 'expect eof' >> /tmp/initpass \
  && echo 'exit' >> /tmp/initpass \
  && sudo -u ubuntu -H /bin/bash -c '/usr/bin/expect /tmp/initpass' \
  && mkdir -p /home/ubuntu/.vnc \
  && chown ubuntu:ubuntu /home/ubuntu/.vnc \
  && echo '#!/bin/sh' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LANG=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LC_ALL=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export XMODIFIERS=@im=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export GTK_IM_MODULE=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'fcitx -r -d &' >> /home/ubuntu/.vnc/xstartup \
  && echo 'exec startxfce4' >> /home/ubuntu/.vnc/xstartup \
  && chmod +x /home/ubuntu/.vnc/xstartup \
  && mkdir -p /home/ubuntu/data \
  && chown -R ubuntu:ubuntu /home/ubuntu/data

expose 5901
volume ["/home/ubuntu/data"]
cmd /usr/bin/vncserver :1 -localhost no -geometry 1152x864 -alwaysshared -fg

コンテナの実行

コンテナを実行するには、以下のコマンドを実行します。
docker run -it -v `pwd`:/home/ubuntu/data -p 5901:5901 -u ubuntu --privileged ub2004vncxfceganttproject

関連情報

・Gantt Projectに関する他の記事は、こちらを参照してください。

2021年1月1日金曜日

DockerでEclipse Lua Development ToolsとXfce、TigerVNCがインストールされたコンテナ(Ubuntu20.04)を作成する

Eclipse Lua Development ToolsはオープンソースのLua言語IDEです。DockerでEclipse Lua Development Toolsがインストール済みのXfceデスクトップ環境を構築し、VNCクライアントで接続することができます。

〇Eclipse Lua Development Toolsの画面
TigerVNCがインストールされているので、VNCクライアントで接続することができます。VNCパスワードはubuntuです。

イメージのビルド

以下のコマンドを実行してイメージをビルドします。
docker build --no-cache -t ub2004vncxfceldt .

Dockerfile
from ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive
run apt-get update \
  && apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade \
  && apt-get install -y language-pack-ja-base language-pack-ja \
  && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
  && echo 'Asia/Tokyo' > /etc/timezone \
  && locale-gen ja_JP.UTF-8 \
  && echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
  && echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale
env LANG=ja_JP.UTF-8 \
   LANGUAGE=ja_JP.UTF-8 \
   LC_ALL=ja_JP.UTF-8
run apt-get -y install \
      xubuntu-desktop \
      xfce4-terminal \
      tigervnc-standalone-server \
      expect \
      fcitx-mozc \
      fonts-ipafont-gothic \
      fonts-ipafont-mincho \
      vim \
      gvfs-bin \
      xdg-utils \
      openjdk-11-jdk \
  && mkdir -p /opt/ldt \
  && cd /opt/ldt \
  && wget https://ftp.jaist.ac.jp/pub/eclipse/ldt/products/stable/1.4.2/org.eclipse.ldt.product-linux.gtk.x86_64.tar.gz \
  && tar xvfz org.eclipse.ldt.product-linux.gtk.x86_64.tar.gz \
  && echo '[Desktop Entry]' >> /usr/share/applications/eclipse_ldt.desktop \
  && echo 'Version=1.0' >> /usr/share/applications/eclipse_ldt.desktop \
  && echo 'Type=Application' >> /usr/share/applications/eclipse_ldt.desktop \
  && echo 'Terminal=false' >> /usr/share/applications/eclipse_ldt.desktop \
  && echo 'Exec=/opt/ldt/LuaDevelopmentTools' >> /usr/share/applications/eclipse_ldt.desktop \
  && echo 'Name=Eclipse Lua Development Tools' >> /usr/share/applications/eclipse_ldt.desktop \
  && echo 'Categories=Development;' >> /usr/share/applications/eclipse_ldt.desktop \
  && echo 'Icon=/opt/ldt/icon.xpm' >> /usr/share/applications/eclipse_ldt.desktop \
  && echo 'EOF' >> /usr/share/applications/eclipse_ldt.desktop \
  && apt-get -y remove --purge light-locker \
  && apt-get -y install gnome-screensaver \
  && im-config -n fcitx \
  && apt-get clean \
  && rm -rf /var/cache/apt/archives/* \
  && rm -rf /var/lib/apt/lists/* \
  && groupadd -g 1000 ubuntu \
  && useradd -d /home/ubuntu -m -s /bin/bash -u 1000 -g 1000 ubuntu \
  && echo 'ubuntu:ubuntu' | chpasswd \
  && echo "ubuntu ALL=NOPASSWD: ALL" >> /etc/sudoers \
  && echo 'spawn "tigervncpasswd"' >> /tmp/initpass \
  && echo 'expect "Password:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Verify:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Would you like to enter a view-only password (y/n)?"' >> /tmp/initpass \
  && echo 'send "n\\r"' >> /tmp/initpass \
  && echo 'expect eof' >> /tmp/initpass \
  && echo 'exit' >> /tmp/initpass \
  && sudo -u ubuntu -H /bin/bash -c '/usr/bin/expect /tmp/initpass' \
  && mkdir -p /home/ubuntu/.vnc \
  && chown ubuntu:ubuntu /home/ubuntu/.vnc \
  && echo '#!/bin/sh' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LANG=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LC_ALL=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export XMODIFIERS=@im=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export GTK_IM_MODULE=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'fcitx -r -d &' >> /home/ubuntu/.vnc/xstartup \
  && echo 'exec startxfce4' >> /home/ubuntu/.vnc/xstartup \
  && chmod +x /home/ubuntu/.vnc/xstartup \
  && mkdir -p /home/ubuntu/data \
  && chown -R ubuntu:ubuntu /home/ubuntu/data

expose 5901
volume ["/home/ubuntu/data"]
cmd /usr/bin/vncserver :1 -localhost no -geometry 1152x864 -alwaysshared -fg

コンテナの実行

コンテナを実行するには、以下のコマンドを実行します。
docker run -it -v `pwd`:/home/ubuntu/data -p 5901:5901 -u ubuntu --privileged ub2004vncxfceldt

関連情報

・Eclipseに関する他の記事は、こちらを参照してください。

2020年12月28日月曜日

DockerでKiCADとXfce、TigerVNCがインストールされたコンテナ(Ubuntu20.04)を作成する

KiCADで回路図やプリント基盤をデザインする事ができます。DockerでKiCADがインストール済みのXfceデスクトップ環境を構築し、VNCクライアントで接続することができます。

〇KiCADの画面
TigerVNCがインストールされているので、VNCクライアントで接続することができます。VNCパスワードはubuntuです。

イメージのビルド

以下のコマンドを実行してイメージをビルドします。
docker build --no-cache -t ub2004vncxfcekicad .

Dockerfile
from ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive
run apt-get update \
  && apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade \
  && apt-get install -y language-pack-ja-base language-pack-ja \
  && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
  && echo 'Asia/Tokyo' > /etc/timezone \
  && locale-gen ja_JP.UTF-8 \
  && echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
  && echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale
env LANG=ja_JP.UTF-8 \
   LANGUAGE=ja_JP.UTF-8 \
   LC_ALL=ja_JP.UTF-8
run apt-get -y install \
      xubuntu-desktop \
      xfce4-terminal \
      tigervnc-standalone-server \
      expect \
      fcitx-mozc \
      fonts-ipafont-gothic \
      fonts-ipafont-mincho \
      vim \
      gvfs-bin \
      xdg-utils \
  && add-apt-repository --yes ppa:kicad/kicad-5.1-releases \
  && apt-get update \
  && apt-get -y install --install-recommends kicad kicad-demos \
  && apt-get -y remove --purge light-locker \
  && apt-get -y install gnome-screensaver \
  && im-config -n fcitx \
  && apt-get clean \
  && rm -rf /var/cache/apt/archives/* \
  && rm -rf /var/lib/apt/lists/* \
  && groupadd -g 1000 ubuntu \
  && useradd -d /home/ubuntu -m -s /bin/bash -u 1000 -g 1000 ubuntu \
  && echo 'ubuntu:ubuntu' | chpasswd \
  && echo "ubuntu ALL=NOPASSWD: ALL" >> /etc/sudoers \
  && echo 'spawn "tigervncpasswd"' >> /tmp/initpass \
  && echo 'expect "Password:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Verify:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Would you like to enter a view-only password (y/n)?"' >> /tmp/initpass \
  && echo 'send "n\\r"' >> /tmp/initpass \
  && echo 'expect eof' >> /tmp/initpass \
  && echo 'exit' >> /tmp/initpass \
  && sudo -u ubuntu -H /bin/bash -c '/usr/bin/expect /tmp/initpass' \
  && mkdir -p /home/ubuntu/.vnc \
  && chown ubuntu:ubuntu /home/ubuntu/.vnc \
  && echo '#!/bin/sh' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LANG=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LC_ALL=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export XMODIFIERS=@im=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export GTK_IM_MODULE=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'fcitx -r -d &' >> /home/ubuntu/.vnc/xstartup \
  && echo 'exec startxfce4' >> /home/ubuntu/.vnc/xstartup \
  && chmod +x /home/ubuntu/.vnc/xstartup \
  && mkdir -p /home/ubuntu/data \
  && chown -R ubuntu:ubuntu /home/ubuntu/data

expose 5901
volume ["/home/ubuntu/data"]
cmd /usr/bin/vncserver :1 -localhost no -geometry 1152x864 -alwaysshared -fg

コンテナの実行

コンテナを実行するには、以下のコマンドを実行します。
docker run -it -v `pwd`:/home/ubuntu/data -p 5901:5901 -u ubuntu --privileged ub2004vncxfcekicad

関連情報

・KiCADに関する他の記事は、こちらを参照してください。

2020年12月27日日曜日

DockerでLibrePCBとXfce、TigerVNCがインストールされたコンテナ(Ubuntu20.04)を作成する

LibrePCBでプリント基盤をデザインする事ができます。DockerでLibrePCBがインストール済みのXfceデスクトップ環境を構築し、VNCクライアントで接続することができます。

〇LibrePCBの画面
TigerVNCがインストールされているので、VNCクライアントで接続することができます。VNCパスワードはubuntuです。

イメージのビルド

以下のコマンドを実行してイメージをビルドします。
docker build --no-cache -t ub2004vncxfcelibrepcb .

Dockerfile
from ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive
run apt-get update \
  && apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade \
  && apt-get install -y language-pack-ja-base language-pack-ja \
  && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
  && echo 'Asia/Tokyo' > /etc/timezone \
  && locale-gen ja_JP.UTF-8 \
  && echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
  && echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale
env LANG=ja_JP.UTF-8 \
   LANGUAGE=ja_JP.UTF-8 \
   LC_ALL=ja_JP.UTF-8
run apt-get -y install \
      xubuntu-desktop \
      xfce4-terminal \
      tigervnc-standalone-server \
      expect \
      fcitx-mozc \
      fonts-ipafont-gothic \
      fonts-ipafont-mincho \
      vim \
      gvfs-bin \
      xdg-utils \
      unzip \
  && mkdir -p /opt/librepcb \
  && cd /opt/librepcb \
  && wget https://download.librepcb.org/releases/0.1.5/librepcb-0.1.5-linux-x86_64.AppImage \
  && chmod +x librepcb-0.1.5-linux-x86_64.AppImage \
  && echo '[Desktop Entry]' >> /usr/share/applications/librepcb.desktop \
  && echo 'Version=1.0' >> /usr/share/applications/librepcb.desktop \
  && echo 'Type=Application' >> /usr/share/applications/librepcb.desktop \
  && echo 'Terminal=false' >> /usr/share/applications/librepcb.desktop \
  && echo 'Exec=/opt/librepcb/librepcb-0.1.5-linux-x86_64.AppImage' >> /usr/share/applications/librepcb.desktop \
  && echo 'Name=LibrePCB' >> /usr/share/applications/librepcb.desktop \
  && echo 'Categories=Development;' >> /usr/share/applications/librepcb.desktop \
  && apt-get -y remove --purge light-locker \
  && apt-get -y install gnome-screensaver \
  && im-config -n fcitx \
  && apt-get clean \
  && rm -rf /var/cache/apt/archives/* \
  && rm -rf /var/lib/apt/lists/* \
  && groupadd -g 1000 ubuntu \
  && useradd -d /home/ubuntu -m -s /bin/bash -u 1000 -g 1000 ubuntu \
  && echo 'ubuntu:ubuntu' | chpasswd \
  && echo "ubuntu ALL=NOPASSWD: ALL" >> /etc/sudoers \
  && echo 'spawn "tigervncpasswd"' >> /tmp/initpass \
  && echo 'expect "Password:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Verify:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Would you like to enter a view-only password (y/n)?"' >> /tmp/initpass \
  && echo 'send "n\\r"' >> /tmp/initpass \
  && echo 'expect eof' >> /tmp/initpass \
  && echo 'exit' >> /tmp/initpass \
  && sudo -u ubuntu -H /bin/bash -c '/usr/bin/expect /tmp/initpass' \
  && mkdir -p /home/ubuntu/.vnc \
  && chown ubuntu:ubuntu /home/ubuntu/.vnc \
  && echo '#!/bin/sh' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LANG=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LC_ALL=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export XMODIFIERS=@im=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export GTK_IM_MODULE=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'fcitx -r -d &' >> /home/ubuntu/.vnc/xstartup \
  && echo 'exec startxfce4' >> /home/ubuntu/.vnc/xstartup \
  && chmod +x /home/ubuntu/.vnc/xstartup \
  && mkdir -p /home/ubuntu/data \
  && chown -R ubuntu:ubuntu /home/ubuntu/data

expose 5901
volume ["/home/ubuntu/data"]
cmd /usr/bin/vncserver :1 -localhost no -geometry 1152x864 -alwaysshared -fg

コンテナの実行

コンテナを実行するには、以下のコマンドを実行します。
docker run -it -v `pwd`:/home/ubuntu/data -p 5901:5901 -u ubuntu --privileged ub2004vncxfcelibrepcb

関連情報

・LibrePCBに関する他の記事は、こちらを参照してください。

2020年12月26日土曜日

DockerでStellariumとXfce、TigerVNCがインストールされたコンテナ(Ubuntu20.04)を作成する

Stellariumはパソコン上で星座を表示できるプラネタリウムソフトです。DockerでStellariumがインストール済みのXfceデスクトップ環境を構築し、VNCクライアントで接続することができます。

〇Stellariumの画面
TigerVNCがインストールされているので、VNCクライアントで接続することができます。VNCパスワードはubuntuです。

イメージのビルド

以下のコマンドを実行してイメージをビルドします。
docker build --no-cache -t ub2004vncxfcestellarium .

Dockerfile
from ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive
run apt-get update \
  && apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade \
  && apt-get install -y language-pack-ja-base language-pack-ja \
  && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
  && echo 'Asia/Tokyo' > /etc/timezone \
  && locale-gen ja_JP.UTF-8 \
  && echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
  && echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale
env LANG=ja_JP.UTF-8 \
   LANGUAGE=ja_JP.UTF-8 \
   LC_ALL=ja_JP.UTF-8
run apt-get -y install \
      xubuntu-desktop \
      xfce4-terminal \
      tigervnc-standalone-server \
      expect \
      fcitx-mozc \
      fonts-ipafont-gothic \
      fonts-ipafont-mincho \
      vim \
      gvfs-bin \
      xdg-utils \
  && add-apt-repository ppa:stellarium/stellarium-releases \
  && apt-get update \
  && apt-get -y install stellarium \
  && apt-get -y remove --purge light-locker \
  && apt-get -y install gnome-screensaver \
  && im-config -n fcitx \
  && apt-get clean \
  && rm -rf /var/cache/apt/archives/* \
  && rm -rf /var/lib/apt/lists/* \
  && groupadd -g 1000 ubuntu \
  && useradd -d /home/ubuntu -m -s /bin/bash -u 1000 -g 1000 ubuntu \
  && echo 'ubuntu:ubuntu' | chpasswd \
  && echo "ubuntu ALL=NOPASSWD: ALL" >> /etc/sudoers \
  && echo 'spawn "tigervncpasswd"' >> /tmp/initpass \
  && echo 'expect "Password:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Verify:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Would you like to enter a view-only password (y/n)?"' >> /tmp/initpass \
  && echo 'send "n\\r"' >> /tmp/initpass \
  && echo 'expect eof' >> /tmp/initpass \
  && echo 'exit' >> /tmp/initpass \
  && sudo -u ubuntu -H /bin/bash -c '/usr/bin/expect /tmp/initpass' \
  && mkdir -p /home/ubuntu/.vnc \
  && chown ubuntu:ubuntu /home/ubuntu/.vnc \
  && echo '#!/bin/sh' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LANG=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LC_ALL=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export XMODIFIERS=@im=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export GTK_IM_MODULE=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'fcitx -r -d &' >> /home/ubuntu/.vnc/xstartup \
  && echo 'exec startxfce4' >> /home/ubuntu/.vnc/xstartup \
  && chmod +x /home/ubuntu/.vnc/xstartup \
  && mkdir -p /home/ubuntu/data \
  && chown -R ubuntu:ubuntu /home/ubuntu/data

expose 5901
volume ["/home/ubuntu/data"]
cmd /usr/bin/vncserver :1 -localhost no -geometry 1152x864 -alwaysshared -fg

コンテナの実行

コンテナを実行するには、以下のコマンドを実行します。
docker run -it -v `pwd`:/home/ubuntu/data -p 5901:5901 -u ubuntu --privileged ub2004vncxfcestellarium

関連情報

・Stellariumに関する他の記事は、こちらを参照してください。

2020年12月25日金曜日

DockerでPyCharmとXfce、TigerVNCがインストールされたコンテナ(Ubuntu20.04)を作成する

PyCharmはPython言語のIDEです。DockerでPyCharmがインストール済みのXfceデスクトップ環境を構築し、VNCクライアントで接続することができます。

〇PyCharmの画面
TigerVNCがインストールされているので、VNCクライアントで接続することができます。VNCパスワードはubuntuです。

イメージのビルド

以下のコマンドを実行してイメージをビルドします。
docker build --no-cache -t ub2004vncxfcepycharm .

Dockerfile
from ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive
run apt-get update \
  && apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade \
  && apt-get install -y language-pack-ja-base language-pack-ja \
  && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
  && echo 'Asia/Tokyo' > /etc/timezone \
  && locale-gen ja_JP.UTF-8 \
  && echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
  && echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale
env LANG=ja_JP.UTF-8 \
   LANGUAGE=ja_JP.UTF-8 \
   LC_ALL=ja_JP.UTF-8
run apt-get -y install \
      xubuntu-desktop \
      xfce4-terminal \
      tigervnc-standalone-server \
      expect \
      fcitx-mozc \
      fonts-ipafont-gothic \
      fonts-ipafont-mincho \
      vim \
      gvfs-bin \
      xdg-utils \
      python3-distutils \
  && wget https://download.jetbrains.com/python/pycharm-community-2020.3.tar.gz \
  && tar xvfz pycharm-community-2020.3.tar.gz \
  && mv pycharm-community-2020.3 /opt/pycharm-community \
  && echo '[Desktop Entry]' >> /usr/share/applications/pycharm.desktop \
  && echo 'Version=1.0' >> /usr/share/applications/pycharm.desktop \
  && echo 'Type=Application' >> /usr/share/applications/pycharm.desktop \
  && echo 'Terminal=false' >> /usr/share/applications/pycharm.desktop \
  && echo 'Exec=/opt/pycharm-community/bin/pycharm.sh' >> /usr/share/applications/pycharm.desktop \
  && echo 'Name=PyCharm' >> /usr/share/applications/pycharm.desktop \
  && echo 'Icon=/opt/pycharm-community/bin/pycharm.png' >> /usr/share/applications/pycharm.desktop \
  && echo 'Categories=Development;' >> /usr/share/applications/pycharm.desktop \
  && apt-get -y remove --purge light-locker \
  && apt-get -y install gnome-screensaver \
  && im-config -n fcitx \
  && apt-get clean \
  && rm -rf /var/cache/apt/archives/* \
  && rm -rf /var/lib/apt/lists/* \
  && groupadd -g 1000 ubuntu \
  && useradd -d /home/ubuntu -m -s /bin/bash -u 1000 -g 1000 ubuntu \
  && echo 'ubuntu:ubuntu' | chpasswd \
  && echo "ubuntu ALL=NOPASSWD: ALL" >> /etc/sudoers \
  && echo 'spawn "tigervncpasswd"' >> /tmp/initpass \
  && echo 'expect "Password:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Verify:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Would you like to enter a view-only password (y/n)?"' >> /tmp/initpass \
  && echo 'send "n\\r"' >> /tmp/initpass \
  && echo 'expect eof' >> /tmp/initpass \
  && echo 'exit' >> /tmp/initpass \
  && sudo -u ubuntu -H /bin/bash -c '/usr/bin/expect /tmp/initpass' \
  && mkdir -p /home/ubuntu/.vnc \
  && chown ubuntu:ubuntu /home/ubuntu/.vnc \
  && echo '#!/bin/sh' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LANG=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LC_ALL=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export XMODIFIERS=@im=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export GTK_IM_MODULE=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'fcitx -r -d &' >> /home/ubuntu/.vnc/xstartup \
  && echo 'exec startxfce4' >> /home/ubuntu/.vnc/xstartup \
  && chmod +x /home/ubuntu/.vnc/xstartup \
  && mkdir -p /home/ubuntu/data \
  && chown -R ubuntu:ubuntu /home/ubuntu/data

expose 5901
volume ["/home/ubuntu/data"]
cmd /usr/bin/vncserver :1 -localhost no -geometry 1152x864 -alwaysshared -fg

コンテナの実行

コンテナを実行するには、以下のコマンドを実行します。
docker run -it -v `pwd`:/home/ubuntu/data -p 5901:5901 -u ubuntu --privileged ub2004vncxfcepycharm

関連情報

・PyCharmに関する他の記事は、こちらを参照してください。

2020年12月24日木曜日

DockerでGeoGebraとXfce、TigerVNCがインストールされたコンテナ(Ubuntu20.04)を作成する

GeoGebraは幾何・代数・統計・解析に基づいた動的な数学アプリケーションです。DockerでGeoGebraがインストール済みのXfceデスクトップ環境を構築し、VNCクライアントで接続することができます。

〇GeoGebraの画面
TigerVNCがインストールされているので、VNCクライアントで接続することができます。VNCパスワードはubuntuです。

イメージのビルド

以下のコマンドを実行してイメージをビルドします。
docker build --no-cache -t ub2004vncxfcegeogebra .

Dockerfile
from ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive
run apt-get update \
  && apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade \
  && apt-get install -y language-pack-ja-base language-pack-ja \
  && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
  && echo 'Asia/Tokyo' > /etc/timezone \
  && locale-gen ja_JP.UTF-8 \
  && echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
  && echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale
env LANG=ja_JP.UTF-8 \
   LANGUAGE=ja_JP.UTF-8 \
   LC_ALL=ja_JP.UTF-8
run apt-get -y install \
      xubuntu-desktop \
      xfce4-terminal \
      tigervnc-standalone-server \
      expect \
      fcitx-mozc \
      fonts-ipafont-gothic \
      fonts-ipafont-mincho \
      vim \
      gvfs-bin \
      xdg-utils \
      libcanberra-gtk-module \
      libgconf-2-4 \
  && wget http://www.geogebra.net/linux/pool/main/g/geogebra-classic/geogebra-classic_6.0.620.0-202012010900_amd64.deb \
  && dpkg -i geogebra-classic_6.0.620.0-202012010900_amd64.deb \
  && chmod 4755 /usr/share/geogebra-classic/chrome-sandbox \
  && apt-get -y remove --purge light-locker \
  && apt-get -y install gnome-screensaver \
  && im-config -n fcitx \
  && apt-get clean \
  && rm -rf /var/cache/apt/archives/* \
  && rm -rf /var/lib/apt/lists/* \
  && groupadd -g 1000 ubuntu \
  && useradd -d /home/ubuntu -m -s /bin/bash -u 1000 -g 1000 ubuntu \
  && echo 'ubuntu:ubuntu' | chpasswd \
  && echo "ubuntu ALL=NOPASSWD: ALL" >> /etc/sudoers \
  && echo 'spawn "tigervncpasswd"' >> /tmp/initpass \
  && echo 'expect "Password:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Verify:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Would you like to enter a view-only password (y/n)?"' >> /tmp/initpass \
  && echo 'send "n\\r"' >> /tmp/initpass \
  && echo 'expect eof' >> /tmp/initpass \
  && echo 'exit' >> /tmp/initpass \
  && sudo -u ubuntu -H /bin/bash -c '/usr/bin/expect /tmp/initpass' \
  && mkdir -p /home/ubuntu/.vnc \
  && chown ubuntu:ubuntu /home/ubuntu/.vnc \
  && echo '#!/bin/sh' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LANG=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LC_ALL=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export XMODIFIERS=@im=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export GTK_IM_MODULE=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'fcitx -r -d &' >> /home/ubuntu/.vnc/xstartup \
  && echo 'exec startxfce4' >> /home/ubuntu/.vnc/xstartup \
  && chmod +x /home/ubuntu/.vnc/xstartup \
  && mkdir -p /home/ubuntu/data \
  && chown -R ubuntu:ubuntu /home/ubuntu/data

expose 5901
volume ["/home/ubuntu/data"]
cmd /usr/bin/vncserver :1 -localhost no -geometry 1152x864 -alwaysshared -fg

コンテナの実行

コンテナを実行するには、以下のコマンドを実行します。
docker run -it -v `pwd`:/home/ubuntu/data -p 5901:5901 -u ubuntu --privileged ub2004vncxfcegeogebra

関連情報

・GeoGebraに関する他の記事は、こちらを参照してください。

2020年12月23日水曜日

Dockerでdraw.io DesktopとXfce、TigerVNCがインストールされたコンテナ(Ubuntu20.04)を作成する

draw.io Desktopはオープンソースのチャート描画アプリケーションです。Dockerでdraw.io Desktopがインストール済みのXfceデスクトップ環境を構築し、VNCクライアントで接続することができます。

〇draw.io Desktopの画面
TigerVNCがインストールされているので、VNCクライアントで接続することができます。VNCパスワードはubuntuです。

イメージのビルド

以下のコマンドを実行してイメージをビルドします。
docker build --no-cache -t ub2004vncxfcedrawio .

Dockerfile
from ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive
run apt-get update \
  && apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade \
  && apt-get install -y language-pack-ja-base language-pack-ja \
  && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
  && echo 'Asia/Tokyo' > /etc/timezone \
  && locale-gen ja_JP.UTF-8 \
  && echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
  && echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale
env LANG=ja_JP.UTF-8 \
   LANGUAGE=ja_JP.UTF-8 \
   LC_ALL=ja_JP.UTF-8
run apt-get -y install \
      xubuntu-desktop \
      xfce4-terminal \
      tigervnc-standalone-server \
      expect \
      fcitx-mozc \
      fonts-ipafont-gothic \
      fonts-ipafont-mincho \
      vim \
      gvfs-bin \
      xdg-utils \
  && wget https://github.com/jgraph/drawio-desktop/releases/download/v13.9.9/draw.io-amd64-13.9.9.deb \
  && dpkg -i draw.io-amd64-13.9.9.deb \
  && apt-get -y remove --purge light-locker \
  && apt-get -y install gnome-screensaver \
  && im-config -n fcitx \
  && apt-get clean \
  && rm -rf /var/cache/apt/archives/* \
  && rm -rf /var/lib/apt/lists/* \
  && groupadd -g 1000 ubuntu \
  && useradd -d /home/ubuntu -m -s /bin/bash -u 1000 -g 1000 ubuntu \
  && echo 'ubuntu:ubuntu' | chpasswd \
  && echo "ubuntu ALL=NOPASSWD: ALL" >> /etc/sudoers \
  && echo 'spawn "tigervncpasswd"' >> /tmp/initpass \
  && echo 'expect "Password:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Verify:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Would you like to enter a view-only password (y/n)?"' >> /tmp/initpass \
  && echo 'send "n\\r"' >> /tmp/initpass \
  && echo 'expect eof' >> /tmp/initpass \
  && echo 'exit' >> /tmp/initpass \
  && sudo -u ubuntu -H /bin/bash -c '/usr/bin/expect /tmp/initpass' \
  && mkdir -p /home/ubuntu/.vnc \
  && chown ubuntu:ubuntu /home/ubuntu/.vnc \
  && echo '#!/bin/sh' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LANG=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LC_ALL=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export XMODIFIERS=@im=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export GTK_IM_MODULE=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'fcitx -r -d &' >> /home/ubuntu/.vnc/xstartup \
  && echo 'exec startxfce4' >> /home/ubuntu/.vnc/xstartup \
  && chmod +x /home/ubuntu/.vnc/xstartup \
  && mkdir -p /home/ubuntu/data \
  && chown -R ubuntu:ubuntu /home/ubuntu/data

expose 5901
volume ["/home/ubuntu/data"]
cmd /usr/bin/vncserver :1 -localhost no -geometry 1152x864 -alwaysshared -fg

コンテナの実行

コンテナを実行するには、以下のコマンドを実行します。
docker run -it -v `pwd`:/home/ubuntu/data -p 5901:5901 -u ubuntu --privileged ub2004vncxfcedrawio

関連情報

・draw.io Desktopに関する他の記事は、こちらを参照してください。

2020年12月22日火曜日

DockerでFreeCADとXfce、TigerVNCがインストールされたコンテナ(Ubuntu20.04)を作成する

FreeCADはオープンソースのCAD描画アプリケーションです。DockerでFreeCADがインストール済みのXfceデスクトップ環境を構築し、VNCクライアントで接続することができます。

〇FreeCADの画面
TigerVNCがインストールされているので、VNCクライアントで接続することができます。VNCパスワードはubuntuです。

イメージのビルド

以下のコマンドを実行してイメージをビルドします。
docker build --no-cache -t ub2004vncxfcefreecad .

Dockerfile
from ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive
run apt-get update \
  && apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade \
  && apt-get install -y language-pack-ja-base language-pack-ja \
  && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
  && echo 'Asia/Tokyo' > /etc/timezone \
  && locale-gen ja_JP.UTF-8 \
  && echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
  && echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale
env LANG=ja_JP.UTF-8 \
   LANGUAGE=ja_JP.UTF-8 \
   LC_ALL=ja_JP.UTF-8
run apt-get -y install \
      xubuntu-desktop \
      xfce4-terminal \
      tigervnc-standalone-server \
      expect \
      fcitx-mozc \
      fonts-ipafont-gothic \
      fonts-ipafont-mincho \
      vim \
      gvfs-bin \
      xdg-utils \
  && mkdir -p /opt/freecad \
  && cd /opt/freecad \
  && wget https://github.com/FreeCAD/FreeCAD/releases/download/0.18.4/FreeCAD_0.18-16146-rev1-Linux-Conda_Py3Qt5_glibc2.12-x86_64.AppImage \
  && chmod +x FreeCAD_0.18-16146-rev1-Linux-Conda_Py3Qt5_glibc2.12-x86_64.AppImage \
  && echo '[Desktop Entry]' >> /usr/share/applications/freecad.desktop \
  && echo 'Version=1.0' >> /usr/share/applications/freecad.desktop \
  && echo 'Type=Application' >> /usr/share/applications/freecad.desktop \
  && echo 'Terminal=false' >> /usr/share/applications/freecad.desktop \
  && echo 'Exec=/opt/freecad/FreeCAD_0.18-16146-rev1-Linux-Conda_Py3Qt5_glibc2.12-x86_64.AppImage' >> /usr/share/applications/freecad.desktop \
  && echo 'Name=FreeCAD' >> /usr/share/applications/freecad.desktop \
  && echo 'Categories=Development;' >> /usr/share/applications/freecad.desktop \
  && apt-get -y remove --purge light-locker \
  && apt-get -y install gnome-screensaver \
  && im-config -n fcitx \
  && apt-get clean \
  && rm -rf /var/cache/apt/archives/* \
  && rm -rf /var/lib/apt/lists/* \
  && groupadd -g 1000 ubuntu \
  && useradd -d /home/ubuntu -m -s /bin/bash -u 1000 -g 1000 ubuntu \
  && echo 'ubuntu:ubuntu' | chpasswd \
  && echo "ubuntu ALL=NOPASSWD: ALL" >> /etc/sudoers \
  && echo 'spawn "tigervncpasswd"' >> /tmp/initpass \
  && echo 'expect "Password:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Verify:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Would you like to enter a view-only password (y/n)?"' >> /tmp/initpass \
  && echo 'send "n\\r"' >> /tmp/initpass \
  && echo 'expect eof' >> /tmp/initpass \
  && echo 'exit' >> /tmp/initpass \
  && sudo -u ubuntu -H /bin/bash -c '/usr/bin/expect /tmp/initpass' \
  && mkdir -p /home/ubuntu/.vnc \
  && chown ubuntu:ubuntu /home/ubuntu/.vnc \
  && echo '#!/bin/sh' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LANG=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LC_ALL=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export XMODIFIERS=@im=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export GTK_IM_MODULE=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'fcitx -r -d &' >> /home/ubuntu/.vnc/xstartup \
  && echo 'exec startxfce4' >> /home/ubuntu/.vnc/xstartup \
  && chmod +x /home/ubuntu/.vnc/xstartup \
  && mkdir -p /home/ubuntu/data \
  && chown -R ubuntu:ubuntu /home/ubuntu/data

expose 5901
volume ["/home/ubuntu/data"]
cmd /usr/bin/vncserver :1 -localhost no -geometry 1152x864 -alwaysshared -fg

コンテナの実行

コンテナを実行するには、以下のコマンドを実行します。
docker run -it -v `pwd`:/home/ubuntu/data -p 5901:5901 -u ubuntu --privileged ub2004vncxfcefreecad

関連情報

・FreeCADに関する他の記事は、こちらを参照してください。

2020年12月20日日曜日

DockerでNotableとXfce、TigerVNCがインストールされたコンテナ(Ubuntu20.04)を作成する

Notableで、Markdown記法を使用してノートを作成・管理する事ができます。DockerでNotableがインストール済みのXfceデスクトップ環境を構築し、VNCクライアントで接続することができます。

〇Notableの画面
TigerVNCがインストールされているので、VNCクライアントで接続することができます。VNCパスワードはubuntuです。

イメージのビルド

以下のコマンドを実行してイメージをビルドします。
docker build --no-cache -t ub2004vncxfcenotable .

Dockerfile
from ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive
run apt-get update \
  && apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade \
  && apt-get install -y language-pack-ja-base language-pack-ja \
  && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
  && echo 'Asia/Tokyo' > /etc/timezone \
  && locale-gen ja_JP.UTF-8 \
  && echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
  && echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale
env LANG=ja_JP.UTF-8 \
   LANGUAGE=ja_JP.UTF-8 \
   LC_ALL=ja_JP.UTF-8
run apt-get -y install \
      xubuntu-desktop \
      xfce4-terminal \
      tigervnc-standalone-server \
      expect \
      fcitx-mozc \
      fonts-ipafont-gothic \
      fonts-ipafont-mincho \
      vim \
      gvfs-bin \
      xdg-utils \
  && wget https://github.com/notable/notable/releases/download/v1.8.4/notable_1.8.4_amd64.deb \
  && dpkg -i notable_1.8.4_amd64.deb \
  && chmod 4755 /opt/Notable/chrome-sandbox \
  && apt-get -y remove --purge light-locker \
  && apt-get -y install gnome-screensaver \
  && im-config -n fcitx \
  && apt-get clean \
  && rm -rf /var/cache/apt/archives/* \
  && rm -rf /var/lib/apt/lists/* \
  && groupadd -g 1000 ubuntu \
  && useradd -d /home/ubuntu -m -s /bin/bash -u 1000 -g 1000 ubuntu \
  && echo 'ubuntu:ubuntu' | chpasswd \
  && echo "ubuntu ALL=NOPASSWD: ALL" >> /etc/sudoers \
  && echo 'spawn "tigervncpasswd"' >> /tmp/initpass \
  && echo 'expect "Password:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Verify:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Would you like to enter a view-only password (y/n)?"' >> /tmp/initpass \
  && echo 'send "n\\r"' >> /tmp/initpass \
  && echo 'expect eof' >> /tmp/initpass \
  && echo 'exit' >> /tmp/initpass \
  && sudo -u ubuntu -H /bin/bash -c '/usr/bin/expect /tmp/initpass' \
  && mkdir -p /home/ubuntu/.vnc \
  && chown ubuntu:ubuntu /home/ubuntu/.vnc \
  && echo '#!/bin/sh' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LANG=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LC_ALL=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export XMODIFIERS=@im=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export GTK_IM_MODULE=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'fcitx -r -d &' >> /home/ubuntu/.vnc/xstartup \
  && echo 'exec startxfce4' >> /home/ubuntu/.vnc/xstartup \
  && chmod +x /home/ubuntu/.vnc/xstartup \
  && mkdir -p /home/ubuntu/data \
  && chown -R ubuntu:ubuntu /home/ubuntu/data

expose 5901
volume ["/home/ubuntu/data"]
cmd /usr/bin/vncserver :1 -localhost no -geometry 1152x864 -alwaysshared -fg

コンテナの実行

コンテナを実行するには、以下のコマンドを実行します。
docker run -it -v `pwd`:/home/ubuntu/data -p 5901:5901 -u ubuntu --privileged ub2004vncxfcenotable

関連情報

・Notableに関する他の記事は、こちらを参照してください。

2020年12月19日土曜日

DockerでSweetHome3DとXfce、TigerVNCがインストールされたコンテナ(Ubuntu20.04)を作成する

SweetHome3Dはインテリアデザインアプリケーションです。DockerでSweetHome3Dがインストール済みのXfceデスクトップ環境を構築し、VNCクライアントで接続することができます。

〇SweetHome3Dの画面
TigerVNCがインストールされているので、VNCクライアントで接続することができます。VNCパスワードはubuntuです。

イメージのビルド

以下のコマンドを実行してイメージをビルドします。
docker build --no-cache -t ub2004vncxfcesweethome3d .

Dockerfile
from ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive
run apt-get update \
  && apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade \
  && apt-get install -y language-pack-ja-base language-pack-ja \
  && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
  && echo 'Asia/Tokyo' > /etc/timezone \
  && locale-gen ja_JP.UTF-8 \
  && echo 'LC_ALL=ja_JP.UTF-8' > /etc/default/locale \
  && echo 'LANG=ja_JP.UTF-8' >> /etc/default/locale
env LANG=ja_JP.UTF-8 \
   LANGUAGE=ja_JP.UTF-8 \
   LC_ALL=ja_JP.UTF-8
run apt-get -y install \
      xubuntu-desktop \
      xfce4-terminal \
      tigervnc-standalone-server \
      expect \
      fcitx-mozc \
      fonts-ipafont-gothic \
      fonts-ipafont-mincho \
      vim \
      gvfs-bin \
      xdg-utils \
      fonts-vlgothic \
  && wget https://sourceforge.net/projects/sweethome3d/files/SweetHome3D/SweetHome3D-6.4.2/SweetHome3D-6.4.2-linux-x64.tgz \
  && tar xvfz SweetHome3D-6.4.2-linux-x64.tgz \
  && mv SweetHome3D-6.4.2 /opt/sweethome3d \
  && echo '[Desktop Entry]' >> /usr/share/applications/sweethome3d.desktop \
  && echo 'Version=1.0' >> /usr/share/applications/sweethome3d.desktop \
  && echo 'Type=Application' >> /usr/share/applications/sweethome3d.desktop \
  && echo 'Terminal=false' >> /usr/share/applications/sweethome3d.desktop \
  && echo 'Exec=/opt/sweethome3d/SweetHome3D' >> /usr/share/applications/sweethome3d.desktop \
  && echo 'Icon=/opt/sweethome3d/SweetHome3DIcon.png' >> /usr/share/applications/sweethome3d.desktop \
  && echo 'Name=SweetHome3D' >> /usr/share/applications/sweethome3d.desktop \
  && echo 'Categories=Graphics;' >> /usr/share/applications/sweethome3d.desktop \
  && apt-get -y remove --purge light-locker \
  && apt-get -y install gnome-screensaver \
  && im-config -n fcitx \
  && apt-get clean \
  && rm -rf /var/cache/apt/archives/* \
  && rm -rf /var/lib/apt/lists/* \
  && groupadd -g 1000 ubuntu \
  && useradd -d /home/ubuntu -m -s /bin/bash -u 1000 -g 1000 ubuntu \
  && echo 'ubuntu:ubuntu' | chpasswd \
  && echo "ubuntu ALL=NOPASSWD: ALL" >> /etc/sudoers \
  && echo 'spawn "tigervncpasswd"' >> /tmp/initpass \
  && echo 'expect "Password:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Verify:"' >> /tmp/initpass \
  && echo 'send "ubuntu\\r"' >> /tmp/initpass \
  && echo 'expect "Would you like to enter a view-only password (y/n)?"' >> /tmp/initpass \
  && echo 'send "n\\r"' >> /tmp/initpass \
  && echo 'expect eof' >> /tmp/initpass \
  && echo 'exit' >> /tmp/initpass \
  && sudo -u ubuntu -H /bin/bash -c '/usr/bin/expect /tmp/initpass' \
  && mkdir -p /home/ubuntu/.vnc \
  && chown ubuntu:ubuntu /home/ubuntu/.vnc \
  && echo '#!/bin/sh' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LANG=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export LC_ALL=ja_JP.UTF-8' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export XMODIFIERS=@im=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'export GTK_IM_MODULE=fcitx' >> /home/ubuntu/.vnc/xstartup \
  && echo 'fcitx -r -d &' >> /home/ubuntu/.vnc/xstartup \
  && echo 'exec startxfce4' >> /home/ubuntu/.vnc/xstartup \
  && chmod +x /home/ubuntu/.vnc/xstartup \
  && mkdir -p /home/ubuntu/data \
  && chown -R ubuntu:ubuntu /home/ubuntu/data

expose 5901
volume ["/home/ubuntu/data"]
cmd /usr/bin/vncserver :1 -localhost no -geometry 1152x864 -alwaysshared -fg

コンテナの実行

コンテナを実行するには、以下のコマンドを実行します。
docker run -it -v `pwd`:/home/ubuntu/data -p 5901:5901 -u ubuntu --privileged ub2004vncxfcesweethome3d

関連情報

・SweetHome3Dに関する記事はこちらを参照してください。