Docker:错误:服务'app'构建失败:COPY失败:stat /var/lib/docker/tmp/docker-builder818844007/entrypoint.sh:没有这样的文件或目录

时间:2020-04-25 13:09:03

标签: ruby-on-rails mongodb docker docker-compose

使用MongoDB构建容器时遇到问题,使用docker-compose时出现以下错误 错误:服务“ app”无法生成:COPY失败:stat /var/lib/docker/tmp/docker-builder367230859/entrypoint.sh:无此类文件或目录

我试图将mongo更改为PostgreSQL,但是继​​续。 我的文件在下面,在此先感谢

那个Dockerfile

version: '3'

services:
  web:
    image: nginx
    restart: always
#    volumes:
#      - ${APPLICATION}:/var/www/html
#      - ${NGINX_HOST_LOG_PATH}:/var/log/nginx
#      - ${NGINX_SITES_PATH}:/etc/nginx/conf.d
    ports:
      - "80:80"
      - "443:443"
    networks:
      - web
  mongo:
    image: mongo
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: password
    ports:
       - "27017:27017"
    # volumes:
    #   - data:/data/db
    networks:
      - mongo
  app:
    build: .
    volumes:
      - .:/mm_api
    ports:
      - 3000:3000
    depends_on:
      - mongo
networks:
  web:
    driver: bridge
  mongo:
    driver: bridge´´

由docker-compose

FROM ruby:2.7.0
RUN apt-get update -qq && apt-get install -y nodejs
RUN mkdir /mm_api
WORKDIR /mm_api
COPY Gemfile /mm_api/Gemfile
COPY Gemfile.lock /mm_api/Gemfile.lock
RUN bundle install
COPY . /mm_api

COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh

ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000

CMD ["bundle", "exec", "puma", "-C", "config/puma,rb"]
#CMD ["rails", "server", "-b", "0.0.0.0"]

那个入口点

#!/bin/bash
set -e
rm -f /mm_api/tmp/pids/server.pid
exec "$@"

1 个答案:

答案 0 :(得分:0)

在使用Docker处理Rails 6应用程序时,我遇到了类似的问题。

运行docker-compose build时收到错误消息:

Step 10/16 : COPY Gemfile Gemfile.lock ./
ERROR: Service 'app' failed to build : COPY failed: stat /var/lib/docker/tmp/docker-builder408411426/Gemfile.lock: no such file or directory

这是我修复的方式

问题是我的项目目录中缺少Gemfile.lock。我在遇到与宝石依赖有关的问题时就删除了。

我要做的就是运行以下命令来安装必要的gem,然后重新创建Gemfile.lock

捆绑安装

然后这一次,当我运行命令docker-compose build时,一切再次正常运行。

因此,每当遇到此问题时,都应尝试检查目录中是否存在该文件,最重要的是,您指定的文件路径是否正确。

仅此而已。

我希望这会有所帮助