簡體   English   中英

在我運行 docker compose up 后,我的 mac 返回錯誤,指出它找不到我的 mix phx.server。 如何向 docker 顯示我的 mix.exs 文件在哪里?

[英]After I run docker compose up, my mac returns error stating that it can't find my mix phx.server. How do I show docker where my mix.exs file is?

當我運行 Docker Compose 時,我收到一個錯誤

** (Mix) The task "phx.server" could not be found
Note no mix.exs was found in the current directory

我相信這是我運行該項目所需的最后一步。 這是一個 phoenix/Elixir Docker 項目。 Mix.exs 是我項目中的頂級文件,與我的 dockerfile/docker-compose 文件處於同一級別。

Dockerfile

FROM elixir:1.13.1

# Build Args
ARG PHOENIX_VERSION=1.6.6
ARG NODEJS_VERSION=16.x

# Apt
RUN apt-get update && apt-get upgrade -y
RUN apt-get install -y apt-utils
RUN apt-get install -y build-essential
RUN apt-get install -y inotify-tools

# Nodejs
RUN curl -sL https://deb.nodesource.com/setup_${NODEJS_VERSION} | bash
RUN apt-get install -y nodejs

# Phoenix
RUN mix local.hex --force
RUN mix archive.install --force hex phx_new #{PHOENIX_VERSION}
RUN mix local.rebar --force

# App Directory
ENV APP_HOME /app
RUN mkdir -p $APP_HOME
WORKDIR $APP_HOME

COPY . .
# App Port
EXPOSE 4000

# Default Command
CMD ["mix", "phx.server"]

Docker-compose.yml


version: "3"

services:
  book-search:
    build: .
    volumes:
      - ./src:/app
    ports:
      - "4000:4000"
    depends_on:
      - db
  db:
    image: postgres:9.6
    environment:
      POSTGRES_DB: "db"
      POSTGRES_HOST_AUTH_METHOD: "trust"
      POSTGRES_USER: tmclean
      POSTGRES_PASSWORD: tmclean
      PGDATA: /var/lib/postgresql/data/pgdata
    restart: always
    volumes:
      - ./pgdata:/var/lib/postgresql/data

讓我知道我還能回答哪些其他問題

問題是您docker-compose.yml文件。

volumes:
  - ./src:/app

您正在使用可能不存在的src目錄覆蓋應用程序。 將其更改為:

volumes:
  - .:/app

它應該可以工作。 但是,如果這樣做,復制Dockerfile中的文件沒有意義,因此您也可以刪除

COPY . .

或者,如果您希望源文件位於映像中,請保留COPY ,並從docker-compose.yml中的book-search服務中刪除volumes部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM