主題の通り、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: unknownError 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正直なぜなのか理由はわかっていませんが・・・
コメント