主題の通り、Docker のコンテナを立ち上げようとするとエラーになりました。
Docker のエラーはたいていググったら解決するんですけど、今回は結構てこずったので備忘録しておきます。
環境
- Windows Home 64 bit
- Docker Desktop
症状
以下のような Dockerfile と docker-compose.yml を用意しました。
# Dockerfile
FROM node:slim
RUN apt-get update
RUN npm install -g @vue/cli
WORKDIR /dev
# docker-compose.yml
version: "3"
services:
vue:
build: ./
ports:
- 8082:8080
stdin_open: true
volumes:
- ./dev/:/dev
tty: true
これに対して、以下の通りコンテナ構築+立ち上げを実行するとエラーになりました。
> docker-compose up -d
# ・・・
# 省略
# ・・・
[+] Running 0/1
- Container vue-demo_vue_1 Starting 17.8s
Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: open /dev/ptmx: no such file or directory: unknown
Error response from daemon: OCI runtime create failed
というのはいろんな派生形があるらしく、それだとググったらいろいろ引っかかるのですが、
open /dev/ptmx: no such file or directory: unknown
というキーワードはあまりヒットしませんでした。
解決策
本家の github のリポジトリの issue から検索すると、以下が見つかりました。
docker run with -t option lead to "open /dev/ptmx: no such file or directory" message · Issue #2067 · docker/cli
Description docker run with -t option lead to "open /dev/ptmx: no such file or directory" message Steps to reproduce the issue: Run: docker run -it hello-world ...
これによると、なんか /dev:/dev
というキーワードがあります。
ここが怪しいのかなと思い Dockerfile と docker-compose.yml を以下のように変更してみました。
# Dockerfile(変更後)
FROM node:slim
RUN apt-get update
RUN npm install -g @vue/cli
WORKDIR /work # ← dev -> work に変更
# docker-compose.yml(変更後)
version: "3"
services:
vue:
build: ./
ports:
- 8082:8080
stdin_open: true
volumes:
- ./dev/:/work # ← dev -> work に変更
tty: true
するととりあえず解決しました。
> docker-compose up -d --build
# ・・・
# 省略
# ・・・
[+] Running 1/0
- Container vue-demo_vue_1 Running
正直なぜなのか理由はわかっていませんが・・・
コメント