前提・実現したいこと
docker-composeでscrapinghub/splashをpullしてきたコンテナ内にVSCodeのエクステンションである「Remote-container」を用いて入りたい。
発生している問題・エラーメッセージ
リモート接続するための情報ディレクトリ(.vscode-server)をコンテナ内の/home/splash配下にmkdirする段階で, permission deniedが発生しており, どのように処理すれば良いか困っている。
docker-compose.yml(補足にファイル概要あり)を作成し
docker-compose -f ./docker-compose.yml up -d
を実行し, (この段階で既に起動段階なので)VScode上のもっとも左下にある「リモートウィンドウを開きます」から「Attach to Running Container...」をクリックします。すると別ウィンドウでリモートの環境が開きますが, 「An error occurred attaching to the container.」とポップアップが表示され, そのリモート接続ログ(?)を見ると以下のように表示されます。
発生しているメッセージ
[698 ms] [698 ms] Start: Run in container: cat /etc/passwd [701 ms] Start: Run in container: test -d /home/splash/.vscode-server [702 ms] [703 ms] [703 ms] Exit code 1 [703 ms] Start: Run in container: test -d /home/splash/.vscode-remote [705 ms] [705 ms] [705 ms] Exit code 1 [705 ms] Start: Run in container: test ! -f '/home/splash/.vscode-server/data/Machine/.writeMachineSettingsMarker' && set -o noclobber && mkdir -p '/home/splash/.vscode-server/data/Machine' && { > '/home/splash/.vscode-server/data/Machine/.writeMachineSettingsMarker' ; } 2> /dev/null [709 ms] [709 ms] mkdir: cannot create directory '/home/splash/.vscode-server': Permission denied [709 ms] Exit code 1 [710 ms] Start: Run in container: cat /home/splash/.vscode-server/data/Machine/settings.json [713 ms] [713 ms] cat: /home/splash/.vscode-server/data/Machine/settings.json: No such file or directory [713 ms] Exit code 1 [713 ms] Start: Run in container: test -d /home/splash/.vscode-server/bin/(16進数字列) [716 ms] [716 ms] [716 ms] Exit code 1 [717 ms] Installing VS Code Server for commit (16進数字列) [717 ms] Start: Installing VS Code Server [717 ms] Start: Run in container: mkdir -p /home/splash/.vscode-server/bin/(16進数字列) [725 ms] [725 ms] mkdir: cannot create directory '/home/splash/.vscode-server': Permission denied [725 ms] Exit code 1 [728 ms] Command in container failed: mkdir -p /home/splash/.vscode-server/bin/(16進数字列)
Docker desktopのCLIからはアクセスできていますので起動自体はしております。
このpermission deniedのおかげでコンテナにvscode経由で接続できなくなっています。コンテナ内のファイルをvscodeで操作したい場合, このエラーをどのように突破すれば良いでしょうか?
試したこと
もともと, このscrapinghub/splashは以下のようなDockerfileを実行してもmkdirのところでpermission deniedを食らっていました。
Dockerfile
1FROM scrapinghub/splash 2 3WORKDIR /home/splash 4 5RUN mkdir -p hogehoge 6
これに対し, apt-get sudoからの sudo mkdirでもダメでした。
補足情報(FW/ツールのバージョンなど)
dcoker-compose up -d したdocker-compose.yml
version: "3" services: scraping: image: scrapinghub/splash container_name: scraping ports: - "8050:8050" volumes: - volvol:/home/splash volumes: volvol: external: True name: vol1
(vol1はローカルにあるボリューム名です)
あなたの回答
tips
プレビュー