1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

droneでroot以外の一般ユーザでstep実行

Posted at

はじめに

droneでcloneしてくれたソースでテストをしようとしたら権限エラーで怒られて失敗するトラブルにあった。
rootで動くdockerイメージは必要だが、最低限に留める方法を確立したの共有します。

ちなみに本件をググっても出てこない。困ってる人がいない模様?
droneサーバ側の設定で解決する方法がありそうな気がします。
それかrootユーザでやっちゃえって感じなのでしょうか。でも、ケースによってはdockerイメージを用意する必要がありそう。

原因

droneのデフォルトcloneはroot権限で行われownerがrootになってることが原因です。
ちなみに、デフォルトcloneを無効化し自分で実施してもワークスペース(デフォルト:/drone/src)フォルダの所有者がrootでモードが755のため、一般ユーザがclone(書き込み)ができないです。

解決策

.drone.yml
kind: pipeline
type: docker
name: default

steps:
  - name: chown
    image: centos:centos7
    commands:
    - chown -R 本来のユーザUID:本来のグループUID . # 例 chown -R 1000:1000

  - name: 本来やりたいこと
    image: 本来のユーザで動くdockerイメージ
    commands:
    - ~~~~

rootで動くイメージでchownするってだけですね。
事情がわかってないと意外と行き着くまでに時間がかかりました。

余談

デフォルトのcloneを無効化した上で、最初のstepで空のワークスペースのownerを一般ユーザに変更、次のステップで一般ユーザによるcloneを実施しようとしたところ権限不足で失敗しました。
どうやら、ワークスペースになにもない場合は、次のstepでワークスペースが再作成されてるようです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?