无法启动服务应用程序:OCI运行时创建失败:

时间:2019-10-09 06:36:53

标签: macos apache docker docker-compose

不幸的是,将我的Mac更新到 Catalina 后,出现错误:

ERROR: for app Cannot start service app: OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:430: container init caused \"rootfs_linux.go:58: mounting \\\"/Users/maciejtrzcinski/Sites/docker/openinvest/config/apache/.htaccess\\\" to rootfs \\\"/mnt/sda1/var/lib/docker/overlay2/a088def6294f3c190633026f8d28b68bc6a6eb5cbca33f2dcf7272d716a54ba5/merged\\\" at \\\"/mnt/sda1/var/lib/docker/overlay2/a088def6294f3c190633026f8d28b68bc6a6eb5cbca33f2dcf7272d716a54ba5/merged/var/www/html/.htaccess\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

YML文件:

version: "3"

services:
  app:
    image: wordpress:5.1.1-php7.2
    depends_on:
      - mariadb
    env_file:
      - .env
    volumes:
      - ./log/apache2:/var/log/apache2
      - ./config/apache/.apache:/var/www/html/.apache
      - ./wp-content:/var/www/html/wp-content
    ports:
      - 80:80
  mariadb:
    image: mariadb:10
    volumes:
      - ./data/mariadb:/var/lib
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: ${WORDPRESS_DB_PASSWORD}
      MYSQL_DATABASE: ${WORDPRESS_DB_NAME}
      MYSQL_USER: ${WORDPRESS_DB_USER}
      MYSQL_PASSWORD: ${WORDPRESS_DB_PASSWORD}

我正在尝试使用- ./config/apache/:/var/www/html/,但这也不起作用。 有人知道问题出在哪里吗?

2 个答案:

答案 0 :(得分:1)

我删除了旧容器并添加了一个新容器并开始工作。

  1. docker-machine remove [old]
  2. docker-machine create [new]
  3. eval $(docker-machine env [new])
  4. docker-compose up

答案 1 :(得分:0)

Ubuntu 18.04 上的 Rails 应用程序上工作时,我遇到了类似的问题。我使用Dockerfiledocker-compose.yml来设置应用程序。

这是我遇到的错误

我以前是使用docker-compose build构建映像的,所以我不再运行docker-compose build了,但是,当我运行命令docker-compose up来启动容器时, s),出现此错误:

错误:对于mailing_list_app_1无法启动服务应用程序:OCI运行时创建失败:container_linux.go:349:启动容器进程导致“ exec:\”。/entrypoints / rails-entrypoint.sh \”:stat ./entrypoints/rails -entrypoint.sh:没有这样的文件或目录”:未知

错误:针对应用程序无法启动服务应用程序:OCI运行时创建失败:container_linux.go:349:启动容器进程导致“ exec:\”。/entrypoints / rails-entrypoint.sh \”:stat ./entrypoints/rails -entrypoint.sh:没有这样的文件或目录“:未知 错误:启动项目时遇到错误。

问题是我将文件/entrypoints/rails-entrypoint.sh移动并重命名为docker/entrypoints/docker-entrypoint.sh

因此,当我运行命令docker-compose up来启动容器时,它会失败,因为它无法再找到/entrypoints/rails-entrypoint.sh文件。

这是我的解决方法

通过运行命令为项目重建图像。这会将文件(docker/entrypoints/docker-entrypoint.sh)复制到新映像中,并删除指向文件(/entrypoints/rails-entrypoint.sh)的链接:

docker-compose build

然后使用新建的映像再次启动容器:

docker-compose up

仅此而已。

我希望这会有所帮助