inumaru3
@inumaru3

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

ERROR: .FileNotFoundError: [Errno 2] No such file or directoryと怒られてしまいます。

解決したいこと

~/ドキュメント/YZPortal/rails6-compose % docker-compose build の実行後、下記エラーがでます。

ERROR: .FileNotFoundError: [Errno 2] No such file or directory: '~/Document/workspace/Ruby-lecture/docker-compose.yml'

rails6-compose 配下にdocker-compose.ymlを置いているはずですが、なぜかdocker-compose build の実行後、Ruby-lecture/配下にdocker-compose.ymlがないと怒られてしまいます。

rails6-compose % ls
Dockerfile      README.md       apps            docker-compose.yml  setup.sh
RAILS.md        README.win.md       docker-compose.win.yml  init

以下、該当するファイルです。

docker-compose.yml
version: '3'
services:
  db:
    image: postgres:11.2-alpine
    volumes:
      - ./tmp/db:/var/lib/postgresql/data
  web:
    build: .
    command: /bin/sh
    environment:
      WEBPACKER_DEV_SERVER_HOST: "0.0.0.0"
      RAILS_SERVE_STATIC_FILES: "1"
      EDITOR: "vim"
    volumes:
      - ./apps:/apps
    ports:
      - "3000:3000"
      - "3035:3035"
    depends_on:
      - db
    tty: true

Dockerfile.
FROM oiax/rails6-deps:latest

ARG UID=1000
ARG GID=1000

RUN mkdir /var/mail
RUN groupadd -g $GID devel
RUN useradd -u $UID -g devel -m devel
RUN echo "devel ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

WORKDIR /tmp
COPY init/Gemfile /tmp/Gemfile
COPY init/Gemfile.lock /tmp/Gemfile.lock
RUN bundle install

COPY ./apps /apps

RUN apk add --no-cache openssl shared-mime-info

USER devel

RUN openssl rand -hex 64 > /home/devel/.secret_key_base
RUN echo $'export SECRET_KEY_BASE=$(cat /home/devel/.secret_key_base)' \
  >> /home/devel/.bashrc

WORKDIR /apps

大変お手数ですが、ご教示頂けないでしょうか。
よろしくお願いいたします。

0

2Answer

WindowsでのDockerはたまに不規則な動きをするようですね😿

根本的な解決ではありませんが、-fで実行するymlファイルを指定できるので、使ってみることをオススメします🐳

docker-compose build

docker-compose build -f ./docker-compose.yml

もしくはフルパスで書く場合
rails6-composeディレクトリが~/Document/workspace/Ruby-lectureにある場合は以下になります

docker-compose build -f ~/Document/workspace/Ruby-lecture/rails6-compose/docker-compose.yml

参考

1Like

Comments

  1. @inumaru3

    Questioner

    コメントいただきありがとうございます。

    >>根本的な解決ではありませんが、-fで実行するymlファイルを指定できるので、使ってみることを
    >>オススメします🐳

    ⬇︎

    ~/ドキュメント/YZPortal/rails6-compose % ls
    Dockerfile README.md apps docker-compose.yml setup.sh
    RAILS.md README.win.md docker-compose.win.yml init

    ~/ドキュメント/YZPortal/rails6-compose % docker-compose build -f ./docker-compose.yml
    Build or rebuild services.

    Services are built once and then tagged as `project_service`,
    e.g. `composetest_db`. If you change a service's `Dockerfile` or the
    contents of its build directory, you can run `docker-compose build` to rebuild it.

    Usage: build [options] [--build-arg key=val...] [--] [SERVICE...]

    Options:
    --build-arg key=val Set build-time variables for services.
    --compress Compress the build context using gzip.
    --force-rm Always remove intermediate containers.
    -m, --memory MEM Set memory limit for the build container.
    --no-cache Do not use cache when building the image.
    --no-rm Do not remove intermediate containers after a successful build.
    --parallel Build images in parallel.
    --progress string Set type of progress output (auto, plain, tty).
    --pull Always attempt to pull a newer version of the image.
    -q, --quiet Don't print anything to STDOUT


    と、optionに関するメッセージ出ましたので、以下コードに修正。

    docker-compose -f ~/ドキュメント/YZPortal/rails6-compose/docker-compose.yml build --no-cache
    ・今回cacheが有効になっているため、--no-cacheを追記

    % docker images
    REPOSITORY TAG IMAGE ID CREATED SIZE
    rails6-compose_web latest fd96cc0dad01 53 seconds ago 401MB

    無事にイメージを作成できました。

    @hariNEzuMI928さん、ご指摘いただきましてありがとうございました。

    参考:https://stackoverflow.com/questions/36055771/docker-compose-build-is-showing-me-help-text-when-i-specify-a-file

docker-compose.ymlは~/Document/workspace/Ruby-lecture/にある必要なようです。
でも今はrails6-composeにある様ですね。Ruby-lectureではありません。

0Like

Comments

  1. @inumaru3

    Questioner

    @skys215さん 

    コメントいただきありがとうございます。
    本件解決となりましたので、クローズいたします。

Your answer might help someone💌