处理tar文件时出错(退出状态1):在数据目录存在的情况下,使用docker-compose进行构建时发生意外的EOF

时间:2018-08-16 11:23:15

标签: docker docker-compose

我的docker-compose.yml如下:

version: '3'
services:
  phab:
    build:
      context: .
      args:
        - PHAB_BASE_URI=https://phab.example.com
        - PHAB_REPO_PATH=/var/repo
        - PHAB_TIMEZONE=Europe/Berlin
        - PHP_POST_MAX_SIZE=32MB
    ports:
      - "127.0.0.1:8012:80"
    volumes:
      - ./.data/repos:/var/repo
      - ./.data/mysql:/var/lib/mysql/

如果我在启动容器后尝试重建,则会得到

$ docker-compose build
Building phab
ERROR: Error processing tar file(exit status 1): unexpected EOF

这似乎归因于.data目录。我发现的唯一“治愈”方法是删除目录或将其移至项目目录的外部。将目录重命名为例如。 .data1 对其进行修复。

$ sudo mv .data .data1
$ docker-compose build
Building phab
ERROR: Error processing tar file(exit status 1): unexpected EOF
$ sudo mv .data1 ..
$ docker-compose build
Building phab
Step 1/27 : FROM tutum/lamp:latest
---> 3d49e175ec00
Step 2/27 : RUN apt-get update && apt-get install -y php5-curl php5-mysqlnd php5-gd python3-pygments
---> Using cache
[ ... ]

我正在使用docker-compose 1.18.0,在Debian 9.5上构建8dd22a9 abd Docker 18.06.0-ce,在构建0ffa825。


我看到了问题Docker ERROR: Error processing tar file(exit status 1): unexpected EOF。但是,仅刷新/var/lib/docker目录对我来说不是一个选项。在构建之前修剪未使用的映像,甚至删除基本映像都不能解决问题。

3 个答案:

答案 0 :(得分:1)

我有同样的问题。以下步骤解决了该问题:

1。)停止Docker服务。

systemctl stop docker 

2。)备份/ var / lib / docker。

3。)删除/ var / lib / docker。

sudo rm -rf /var/lib/docker

4。)启动Docker服务。

systemctl start docker

答案 1 :(得分:0)

尝试升级到昨天刚刚发布的18.09。构建期间的“意外EOF”看起来像是18.06中的已知问题:https://github.com/moby/moby/pull/37771

答案 2 :(得分:0)

删除其他容器生成的文件,如“db_data”、“mysql_data”等