OSError: [Errno 28] No space left on device

Hey,

I just updated to the last version of docker:

❯ docker version
Client:
 Version:           20.10.3
 API version:       1.41
 Go version:        go1.15.7
 Git commit:        48d30b5b32
 Built:             Tue Feb  2 02:34:18 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server:
 Engine:
  Version:          20.10.3
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.15.7
  Git commit:       46229ca1d8
  Built:            Tue Feb  2 02:33:45 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.4.3
  GitCommit:        269548fa27e0089a8b8278fc4fc781d7f65a939b.m
 runc:
  Version:          1.0.0-rc93
  GitCommit:        12644e614e25b05da6fd08a38ffa0cfe1903fdec
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

❯ docker-compose version
docker-compose version 1.27.4, build 40524192
docker-py version: 4.3.1
CPython version: 3.7.7
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

And since the update my docker builds fail because of this exception:

❯ docker-compose build
db uses an image, skipping
Building webpack

Traceback (most recent call last):
  File "docker/utils/build.py", line 97, in create_archive
  File "tarfile.py", line 1970, in addfile
  File "tarfile.py", line 250, in copyfileobj
  File "tempfile.py", line 481, in func_wrapper
OSError: [Errno 28] No space left on device

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "bin/docker-compose", line 3, in <module>
  File "compose/cli/main.py", line 67, in main
  File "compose/cli/main.py", line 126, in perform_command
  File "compose/cli/main.py", line 302, in build
  File "compose/project.py", line 468, in build
  File "compose/project.py", line 450, in build_service
  File "compose/service.py", line 1125, in build
  File "docker/api/build.py", line 160, in build
  File "docker/utils/build.py", line 31, in tar
  File "docker/utils/build.py", line 100, in create_archive
OSError: Can not read file in context: /home/oimel/Projects/lechstore/storage/yl/mk/ylmk7g8t4t1o7swnuwu0h6l0rj6u
[23551] Failed to execute script docker-compose

I got plenty of space left on my device:

❯ df -Ph
Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
dev             6,8G       0  6,8G    0% /dev
run             6,9G    1,6M  6,9G    1% /run
/dev/nvme0n1p2  454G     84G  347G   20% /
tmpfs           6,9G       0  6,9G    0% /dev/shm
tmpfs           4,0M       0  4,0M    0% /sys/fs/cgroup
tmpfs           6,9G     51M  6,8G    1% /tmp
/dev/nvme0n1p1  300M    312K  300M    1% /boot/efi
/dev/loop5       13M     13M     0  100% /var/lib/snapd/snap/auto-cpufreq/67
/dev/loop1       99M     99M     0  100% /var/lib/snapd/snap/core/10823
/dev/loop0       56M     56M     0  100% /var/lib/snapd/snap/core18/1988
/dev/loop3      150M    150M     0  100% /var/lib/snapd/snap/code/55
/dev/loop4      150M    150M     0  100% /var/lib/snapd/snap/code/54
/dev/loop2       62M     62M     0  100% /var/lib/snapd/snap/core20/904
/dev/loop6      173M    173M     0  100% /var/lib/snapd/snap/spotify/43
/dev/loop7       26M     26M     0  100% /var/lib/snapd/snap/heroku/4017
/dev/loop8      162M    162M     0  100% /var/lib/snapd/snap/gitkraken/171
/dev/loop9      162M    162M     0  100% /var/lib/snapd/snap/gitkraken/168
/dev/loop10      26M     26M     0  100% /var/lib/snapd/snap/heroku/4010
/dev/loop11      98M     98M     0  100% /var/lib/snapd/snap/core/10583
/dev/loop12      13M     13M     0  100% /var/lib/snapd/snap/auto-cpufreq/64
/dev/loop13      56M     56M     0  100% /var/lib/snapd/snap/core18/1944
tmpfs           1,4G    112K  1,4G    1% /run/user/1000

And enough inodes I got as well:

❯ df --inodes
Dateisystem      Inodes IBenutzt    IFrei IUse% Eingehängt auf
dev             1773599      558  1773041    1% /dev
run             1783627      909  1782718    1% /run
/dev/nvme0n1p2 30261248  1455291 28805957    5% /
tmpfs           1783627        1  1783626    1% /dev/shm
tmpfs              1024       18     1006    2% /sys/fs/cgroup
tmpfs            409600       57   409543    1% /tmp
/dev/nvme0n1p1        0        0        0     - /boot/efi
/dev/loop5         1454     1454        0  100% /var/lib/snapd/snap/auto-cpufreq/67
/dev/loop1        12921    12921        0  100% /var/lib/snapd/snap/core/10823
/dev/loop0        10817    10817        0  100% /var/lib/snapd/snap/core18/1988
/dev/loop3         4235     4235        0  100% /var/lib/snapd/snap/code/55
/dev/loop4         4235     4235        0  100% /var/lib/snapd/snap/code/54
/dev/loop2        11713    11713        0  100% /var/lib/snapd/snap/core20/904
/dev/loop6        24071    24071        0  100% /var/lib/snapd/snap/spotify/43
/dev/loop7        27172    27172        0  100% /var/lib/snapd/snap/heroku/4017
/dev/loop8         2573     2573        0  100% /var/lib/snapd/snap/gitkraken/171
/dev/loop9         2573     2573        0  100% /var/lib/snapd/snap/gitkraken/168
/dev/loop10       27024    27024        0  100% /var/lib/snapd/snap/heroku/4010
/dev/loop11       12867    12867        0  100% /var/lib/snapd/snap/core/10583
/dev/loop12        1450     1450        0  100% /var/lib/snapd/snap/auto-cpufreq/64
/dev/loop13       10809    10809        0  100% /var/lib/snapd/snap/core18/1944
tmpfs            356725       94   356631    1% /run/user/1000

My typical dev docker-compose.yml looks like this:

version: '3.2'

volumes:
  dbdata:
    driver: local

services:
  db:
    image: postgres:11
    environment:
      PGDATA: /var/lib/postgresql/data/pgdata
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    volumes:
      - dbdata:/var/lib/postgresql/data/pgdata

  web:
    build: .
    ports:
      - '3000:3000'
    environment:
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_USER: ${POSTGRES_USER}
      RACK_ENV: ${STAGE}
      RAILS_ENV: ${STAGE}
      WEBPACKER_DEV_SERVER_HOST: webpack
    volumes:
      - .:/usr/src/app
    depends_on:
      - db
      - webpack
    tty: true
    stdin_open: true

  webpack:
    build: .
    command: ./bin/webpack-dev-server
    volumes:
      - .:/usr/src/app
    ports:
      - '3035:3035'
    environment:
      NODE_ENV: ${STAGE}
      RAILS_ENV: ${STAGE}
      WEBPACKER_DEV_SERVER_HOST: 0.0.0.0

And Dockerfile:

FROM ruby:2.7.2

# Install nodejs
RUN apt-get update -qq && apt-get install -y nodejs

# Add Yarn repository
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list

# Update
RUN apt-get update -y

# Install Yarn
RUN apt-get install yarn -y

# Install QOL things
RUN apt-get install bash -y
RUN apt-get install vim -y

ADD . /usr/src/app
WORKDIR /usr/src/app

# Install & run bundler
RUN gem install bundler:'~> 2.1.4'
RUN gem install rake

RUN bundle install --path=vendor/cache

CMD ./docker-entrypoint.sh

So I have no clue how to fix it, since I docker system prune -af and deleted all the stuff. So I guess it’s something coming with the new update? Has anyone experienced the same behaviour?

I solved my problem with adding some large folders to .dockerignore I don’t really need in my build context. While docker-compose up my RAM where completly in use.