2017-05-15 22 views
1

我無法運行docker-compose updocker-compose build --no-cache兩個出口與ERROR: Error processing tar file(archive/tar: invalid tar header)搬運工,撰寫了「錯誤:錯誤處理tar文件(存檔/焦油:無效的tar文件頭)。

我讓自己陷入到這種情況下通過運行

要停止並刪除容器:

docker stop $(docker ps -a -q) 
docker rm $(docker ps -a -q) 

要刪除所有圖像:

docker rmi $(docker images -q) 

我已經試過如下:

  • ​​沒有列出任何容器或圖像。

  • docker ps -a也沒有列出任何容器。

  • docker image list沒有列出任何圖像。

我運行在調試模式下dockerd和我看到:

DEBU[0998] Calling GET /v1.22/images/codesource_buildbot/json 
ERRO[0998] Handler for GET /v1.22/images/codesource_buildbot/json returned error: No such image: codesource_buildbot 

所以好像我已經成功地得到泊塢窗進入一種奇怪的狀態,無法得到它回到工作狀態。我試過docker-compose down,這也沒有幫助。

泊塢版本

Client: 
Version:  17.03.1-ce 
API version: 1.27 
Go version: go1.7.5 
Git commit: c6d412e 
Built:  Mon Mar 27 17:14:09 2017 
OS/Arch:  linux/amd64 

Server: 
Version:  17.03.1-ce 
API version: 1.27 (minimum version 1.12) 
Go version: go1.7.5 
Git commit: c6d412e 
Built:  Mon Mar 27 17:14:09 2017 
OS/Arch:  linux/amd64 
Experimental: false 

泊塢窗,撰寫版本:搬運工,撰寫版本1.12.0,構建b31ff33

泊塢窗,compose.yml

version: '2' 
services: 
    buildbot: 
    build: ./containers/buildbot 
    ports: 
     - "8010:8010" 
    volumes: 
     - "./containers/buildbot/volume:/code" 

Dockerfile

FROM debian:latest 
WORKDIR /home 
RUN ["apt-get", "update"] 
RUN ["apt-get", "install", "-y", "python-dev"] 
RUN ["apt-get", "install", "-y", "python-pip"] 
RUN ["apt-get", "install", "-y", "git-all"] 
RUN ["pip", "install", "--upgrade", "pip"] 
RUN ["pip", "install", "--ignore-installed", "six"] 
RUN ["pip", "install", "service_identity"] 
RUN ["pip", "install", "buildbot[bundle]"] 
CMD bash wait_for_master.sh 
+0

請包括'docker version'的完整輸出。您的構建目錄(目錄和子目錄中所有文件的大小)有多大? – BMitch

+0

@BMitch我用上面的完整信息更新了碼頭版本。我正在工作的目錄的完整大小是472K。 –

+0

我沒有想法,但是您可能想要包含您正在嘗試構建的Dockerfile以及可能會重現此問題的docker-compose.yml文件。 – BMitch

回答

2

該錯誤消息指出codesource_buildbot圖像不存在。你必須重建或添加適當build指令的搬運工,compose.yml

編輯:

PD:你Dockerfile有點太令人費解。你可以使用:

FROM debian:latest WORKDIR /home RUN apt-get update && \ apt-get install -y python-dev \ python-pip \ git-all && \ pip install --upgrade pip && \ pip install --ignore-installed six && \ pip install service_identity && \ pip install buildbot[bundle] CMD bash wait_for_master.sh

所以zip文件沒有緩存,圖像更小我想補充--no-cache-dirpip命令。

+0

我在該文件中有一個構建指令。我添加了上面的文件。 –

+0

我看到你正在使用YAML文件中的當前目錄'.'。你是否在正確的目錄中運行docker-compose? 'ls'的輸出是什麼? –

+0

'搬運工,compose.yml 容器: buildbot 工具: delete-all-containers.sh刪除,全image' –

0

在我遇到過類似的問題時,我剛剛刪除了作爲卷掛載的所有文件夾。它發生在Ubuntu GNU/Linux運行的機器上。

例如,如果我有以下docker-compose.yml(從一個個人項目取):

version: '2' 
services: 

phpBB_dev: 
    build: 
    context: . 
    dockerfile: Dockerfile 
    args: 
     XDEBUG_HOST: 172.17.0.1 
     XDEBUG_PORT: 9021 
     UID: 1000 
     GID: 1000 
    image: 'pcmagas/phpbb_dev' 
    links: 
    - mariadb 
    - postgresql 
    volumes: 
    - "$SRC_PATH:/var/www/html:Z" 
    - "$SRC_PATH_3_1_10:/var/www/phpBB_3_1_10:Z" 
    - "$SRC_PATH_3_0_14:/var/www/phpBB_3_0_14:Z" 

nginx: 
    image: nginx 
    ports: 
    - "5092:5092" 
    - "5093:5093" 
    - "5094:5094" 
    links: 
    - "phpBB_dev" 
    volumes: 
    - './nginx.conf:/etc/nginx/nginx.conf:ro' 
    - './logs/dev/nginx:/var/logs' 
    volumes_from: 
    - 'phpBB_dev' 

mariadb: 
    image: mariadb 
    volumes: 
    - './db/maria:/var/lib/mysql' 
    ports: 
    - '5434:5432' 
    environment: 
    MYSQL_RANDOM_ROOT_PASSWORD: "yes" 
    MYSQL_ONETIME_PASSWORD: "yes" 
    MYSQL_DATABASE: 'phpBB' 
    MYSQL_USER: 'phpbb' 
    MYSQL_PASSWORD: 'a_dummy_passwd' 

postgresql: 
    image: postgres 
    volumes: 
    - './db/postgresql:/var/lib/postgresql/data' 
    ports: 
    - '3306:3306' 
    environment: 
    POSTGRES_DB: 'phpbb' 
    POSTGRES_USER: 'phpbb' 
    POSTGRES_PASSWORD: 'a_dummy_passwd' 

我會刪除其中MariaDB的和PostgreSQL的存儲數據的文件夾./db。另外我會刪除./logs,其中nginx保留其日誌。

一個好的經驗規則(GNU/Linux或類似)是按照theese步驟:

第一步:

列表中的所有文件&文件夾安裝爲卷,且所有者的根和組ls -l命令

第二步:

然後與刪除它們