Skip to content
This repository has been archived by the owner on Nov 30, 2023. It is now read-only.

No space left on device error #128

Closed
naefl opened this issue Sep 11, 2019 · 2 comments
Closed

No space left on device error #128

naefl opened this issue Sep 11, 2019 · 2 comments

Comments

@naefl
Copy link

naefl commented Sep 11, 2019

Hi all. When trying to build my docker image, I get the following error:

Error response from daemon: Error processing tar file(exit status 1): write /src/models/<path_to_model.pkl>: no space left on device

Despite having 600GB free space. Funnily enough, 30mins ago I rebuilt without issue and without change in the meantime. This error message doesn't really tell me anything. Also problem persists across different base images (Miniconda, RDKit, etc.).

  • VSCode Version: Latest insider release
  • Local OS Version: MacOS 10.15 Catalina
  • Name of Dev Container Definition with Issue: Miniconda

Dockerfile:


#-------------------------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
#-------------------------------------------------------------------------------------------------------------

FROM mcs07/rdkit:latest

# Avoid warnings by switching to noninteractive

# This Dockerfile adds a non-root 'vscode' user with sudo access. However, for Linux,
# this user's GID/UID must match your local user UID/GID to avoid permission issues
# with bind mounts. Update USER_UID / USER_GID if yours is not 1000. See
# https://aka.ms/vscode-remote/containers/non-root-user for details.
ARG USERNAME=vscode
ARG USER_UID=1000
ARG USER_GID=$USER_UID

# Copy environment.yml (if found) to a temp locaition so we update the environment. Also
# copy "noop.txt" so the COPY instruction does not fail if no environment.yml exists.
COPY environment.yml* .devcontainer/noop.txt /tmp/conda-tmp/

# Configure apt and install packages
RUN apt-get update \
    && apt-get -y install --no-install-recommends apt-utils dialog 2>&1 \
    #
    # Verify git, process tools, lsb-release (common in install instructions for CLIs) installed
    && apt-get install -y\
        git\
        wget \
        tmux \
        vim \
        zsh \
        iproute2 \
        procps \
        iproute2\
        lsb-release\
        curl \
        exuberant-ctags \
    && curl -L http://install.ohmyz.sh | sh || true \
    && conda config --add channels conda-forge\
    # Install pylint
    && /opt/conda/bin/pip install pylint \
    #
    # Update Python environment based on environment.yml (if presenet)
    && if [ -f "/tmp/conda-tmp/environment.yml" ]; then /opt/conda/bin/conda env update -n base -f /tmp/conda-tmp/environment.yml; fi \
    && rm -rf /tmp/conda-tmp \
    #
    # Create a non-root user to use if preferred - see https://aka.ms/vscode-remote/containers/non-root-user.
    && groupadd --gid $USER_GID $USERNAME \
    && useradd -s /bin/bash --uid $USER_UID --gid $USER_GID -m $USERNAME \
    # [Optional] Add sudo support for the non-root user
    && apt-get install -y sudo \
    && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME\
    && chmod 0440 /etc/sudoers.d/$USERNAME \
    #
    # Clean up
    && apt-get autoremove -y \
    && apt-get clean -y \
    && rm -rf /var/lib/apt/lists/*

# Switch back to dialog for any ad-hoc use of apt-get
ENV DEBIAN_FRONTEND=

devcontainer.json

{
	"name": "Python 3 - Miniconda",
	"context": "..",
	"dockerFile": "Dockerfile",

	// Use 'settings' to set *default* container specific settings.json values on container create.
	// You can edit these settings after create using File > Preferences > Settings > Remote.
	"settings": {
		"terminal.integrated.shell.linux": "/bin/zsh",
		"python.pythonPath": "/opt/conda/bin/python",
		"python.linting.enabled": true,
		"python.linting.pylintEnabled": true,
		"python.linting.pylintPath": "/opt/conda/bin/pylint"
	},

	// Uncomment the next line if you want to publish any ports.
	// "appPort": [],

	// Uncomment the next line to run commands after the container is created.
	// "postCreateCommand": "python --version",

	// Uncomment the next line to use a non-root user. On Linux, this will prevent
	// new files getting created as root, but you may need to update the USER_UID
	// and USER_GID in .devcontainer/Dockerfile to match your user if not 1000.
	// "runArgs": [ "-u", "vscode" ],

	// Add the IDs of extensions you want installed when the container is created in the array below.
	"extensions": [
		"ms-python.python",
		"mechatroner.rainbow-csv",
		"RandomFractalsInc.vscode-data-preview",
		"patbenatar.advanced-new-file"
	]
}

environment.yml

dependencies:
  - jupyter
  - numpy
  - matplotlib
  - pandas
  - rdkit
  - scikit-learn
  - flask
  - waitress

Any help is highly appreciated

@Chuxel
Copy link
Member

Chuxel commented Sep 11, 2019

Docker on Mac uses a VM and therefore has disk limits set. You likely have run out of Docker space. You can allocate more space to Docker by going to Preferences > Disk from Docker the task bar icon or clean out unused images in particular.

We cover this here: https://code.visualstudio.com/docs/remote/troubleshooting#_cleaning-out-unused-containers-and-images

Most likely you've got a number of unused images taking space. You can see them all by doing docker image ls -a. You can use docker image prune to clean out ones that are not in use.

@naefl
Copy link
Author

naefl commented Sep 11, 2019 via email

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants