回答編集履歴

2

間違ったコード貼ってたので修正しました。参照リンクも追記しました。

2022/05/08 06:34

投稿

mosuke
mosuke

スコア65

test CHANGED
@@ -29,7 +29,7 @@
29
29
  ├── .env
30
30
  ├── Dockerfile
31
31
  ├── app
32
-    └── _sample.txt
32
+ └── _sample.txt
33
33
  ├── docker-compose.yml
34
34
  └── entrypoint.sh
35
35
  ```
@@ -55,6 +55,9 @@
55
55
  COPY ./entrypoint.sh /usr/local/bin/entrypoint.sh
56
56
  RUN chmod +x /usr/local/bin/entrypoint.sh
57
57
 
58
+ RUN useradd mosuke
59
+ WORKDIR /home/mosuke
60
+
58
61
  ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
59
62
  ```
60
63
 
@@ -71,7 +74,7 @@
71
74
  # UID, GID って環境変数で ユーザー/グループID定義してます。
72
75
  - .env
73
76
  volumes:
74
- - ./app:/usr/src/app
77
+ - ./app:/home/mosuke/app
75
78
  tty: true
76
79
  stdin_open: true
77
80
  command: /bin/sh
@@ -81,14 +84,19 @@
81
84
  # entrypoint.sh
82
85
  #!/bin/bash
83
86
 
84
- # デフォルトポート(9001)は適当。特に意味ありません。
85
87
  USER_ID=${UID:-9001}
86
88
  GROUP_ID=${GID:-9001}
87
89
 
88
90
  echo "Starting with UID : $USER_ID, GID: $GROUP_ID"
89
- useradd -u $USER_ID -o -m mosuke
91
+ usermod -u $USER_ID -o -d /home/mosuke -m mosuke
90
92
  groupmod -g $GROUP_ID mosuke
91
93
  export HOME=/home/mosuke
94
+
95
+ # usermod で $HOME 配下は user に owner が変更されるが、
96
+ # $HOME 自体は root 権限となってしまう。
97
+ # このままでは ~/.vuerc や ~/.npm が作成出来ずにエラーとなってしまうため、
98
+ # 下記で owner を user に変更しておく。
99
+ chown -R $USER_ID:$GROUP_ID $HOME
92
100
 
93
101
  exec /sbin/su-exec mosuke "$@"
94
102
  ```
@@ -117,5 +125,10 @@
117
125
  Access the dev server via http://localhost:<your container's external mapped port>/
118
126
 
119
127
  # これで http://[vps-server]:8080/ とかでブラウザからアクセスすれば、vuejsお馴染みのあの画面が出力されます。
120
- # (僕の場合は config ファイルの修正が必要でしたが、本題と逸れるので割愛します。)
128
+ # (僕の場合は デーモンやvue周りの 設定修正が必要でしたが、本題と逸れるので割愛します。)
121
129
  ```
130
+
131
+ ## 参考
132
+ - [【Vue CLI】Creating a Project](https://cli.vuejs.org/guide/creating-a-project.html#vue-create)
133
+ - [dockerでvolumeをマウントしたときのファイルのowner問題](https://qiita.com/yohm/items/047b2e68d008ebb0f001#%E3%81%86%E3%81%BE%E3%81%8F%E3%81%84%E3%81%8B%E3%81%AA%E3%81%84%E6%96%B9%E6%B3%951--dockerfile%E5%86%85%E3%81%A7useradd%E3%81%99%E3%82%8B)
134
+ - [usermodの使い方(特に -d, -m オプション)](https://eng-entrance.com/linux-command-usermod#-d--home-dir_HOME_DIR)

1

改行タブ混ざってた

2022/05/03 15:33

投稿

mosuke
mosuke

スコア65

test CHANGED
@@ -1,6 +1,6 @@
1
1
  ## 解消方法: コンテナ内に特定ユーザのホームディレクトリを作成する
2
2
 
3
- [【Vue CLI】Creating a Project](https://cli.vuejs.org/guide/creating-a-project.html#vue-create)<br>
3
+ [【Vue CLI】Creating a Project](https://cli.vuejs.org/guide/creating-a-project.html#vue-create)
4
4
  にて、下記の文言を見つけました。
5
5
 
6
6
  > Saved presets will be stored in a JSON file named .vuerc in your user home directory. If you wish to modify saved presets / options, you can do so by editing this file.