Warum ist docker build die so lange laufen?
Ich bin mit docker build-und es nimmt ein schrecklich lange Zeit zu laufen. Infact, ist es nicht komplett und ich muss mit STRG + C beenden.
Letzte Nacht waren die Dinge funktionieren. Als ich wieder an den computer und versucht, ihn wieder aufzubauen begann handeln seltsam.
Hier ist mein Befehl:
docker build -t mywebsite/backend .
Wenn ich es lief ich bemerkte dies:
Sending build context to Docker daemon 213.8 MB
Step 1 : FROM ubuntu:14.04
Ich habe keine Ahnung, warum die Größe der Datei war 213.8. Das einzige Verzeichnis, das große ist node_modules
und enthält .dockerignore
so sollte es nicht rührend, dass-Verzeichnis.
Danach lief ich einen Fehler gehabt, also habe ich es behoben und reran:
docker build -t mywebsite/backend .
Dieser Zeit, es hing einfach. Und wird dies auch weiterhin tun.
Hier ist mein Dockerfile
FROM ubuntu:14.04
# Set env. variables
ENV DEBIAN_FRONTEND noninteractive
# Application
ENV APP_PORT 3000
# Amazon
ENV AMAZON_BUCKET mybucket
ENV AMAZON_ACCESS_KEY_ID mykey
ENV AMAZON_SECRET_ACCESS_KEY mytoken
# Set working directory
WORKDIR ~/vms
# Install NodeJS
RUN apt-get update; apt-get install -y curl;
RUN curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
RUN apt-get install -y nodejs
# Install node dependencies
ADD package.json package.json
RUN npm install --production
# Copy files to the container
ADD src src
EXPOSE 3000
# Start application
RUN npm start
Verzeichnis ich bin, wenn ich den Befehl ausführen zu können ist das eine, die enthält Dockerfile:
- backend
- node_modules
- src
- config
- routes
- views
index.js
Dockerfile
package.json
Ich bin mit docker auf Ubuntu 14.04
- wenn Sie das tun
docker build
sind Sie in ein Verzeichnis, das nur die benötigten Dateien für die docker build? Normalerweise mache ichmkdir myproject ; cd myproject ; emacs Dockerfile
- Darf ich Fragen, warum Sie verwenden
ubuntu:14.04
statt mit der offizielle node-repository? Auf diese Weise haben Sie woudn T have to install Knoten jedes mal.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das ist nicht, wie
.dockerignore
funktioniert. Die.dockerignore
Datei sollte im gleichen Verzeichnis wie IhreDockerfile
- und Listen-Muster zu ignorieren. Erstellen Sie eine Datei inbackend
genannt.dockerignore
die einfach die Zeile enthältnode_modules
.Weitere Informationen finden Sie hier: https://docs.docker.com/engine/reference/builder/#dockerignore-file
Was @sulogonamission sagt, ist perfekt.
.dockerignore
im Verzeichnis mit dem Dockerfile existiert/node_modules
(oder der genaue Weg, den node_modules-Verzeichnis)