Ich möchte eine einfache JS Boilerplate zu Docker Cloud bereitstellen. Ich benutze eine Dockerfile, die ich bereits für eine andere Boilerplate und Bild verwendet habe. Die Dockerfile ist ziemlich einfach. Es basiert nur auf dem offiziellen nginx, fügt zwei config-Dateien hinzu und dann den Ausgabeordner meiner gulp boilerplate zum nginx root. Also habe ich es aus dem einen Verzeichnis in das neue Verzeichnis kopiert, da ich dieses hier ausprobieren möchte.Docker: "lstat keine solche Datei oder Verzeichnis" Fehler beim Erstellen des Bildes. Datei ist dort
Der Fehler Ich erhalte ist diese (letzte Zeile)
Sending build context to Docker daemon 277.5 kB
Step 1 : FROM nginx
---> af4b3d7d5401
Step 2 : MAINTAINER Ole Bjarnstroem
---> Using cache
---> f57bc23d9444
Step 3 : ENV LANG en_US.UTF-8
---> Using cache
---> f6f4a76092dd
Step 4 : COPY ./nginx/nginx.conf /etc/nginx/nginx.conf
---> Using cache
---> c4f83a39ba73
Step 5 : COPY ./nginx/default.conf /etc/nginx/conf.d/default.conf
---> Using cache
---> 6fe5a6b61d9f
Step 6 : ADD ./dist /usr/share/nginx/html
lstat dist: no such file or directory
Aber der dist-Ordner ist da.
.
├── Dockerfile
├── JSCS.intellij.formatter.xml
├── README.md
├── app
├── dist
├── gulpfile.babel.js
├── jspm.conf.js
├── jspm_packages
├── karma.conf.js
├── nginx
├── node_modules
├── package.json
├── tsconfig.json
├── tslint.json
├── typings
└── typings.json
Es könnte bemerkenswert sein, dass der Ordner ./public
Sogenannte kopiert werden sollte, vorstellen könnte ich, dass dies eine Art seltsamen Docker Cache Problem.
Mein Dockerfile:
FROM nginx
ENV LANG en_US.UTF-8
# Copy configuration files
COPY ./nginx/nginx.conf /etc/nginx/nginx.conf
COPY ./nginx/default.conf /etc/nginx/conf.d/default.conf
# Add Gulp output folder to server root
ADD ./dist /usr/share/nginx/html
# Port configuration
EXPOSE 8080
Was ich bisher versucht:
- baumelnden löschen und nicht verwendete Bilder
- Löschen des Bildes, das zuvor von der gleichen Docker-Datei erstellt wurde
- Verwendung ein anderes Tag
Mein Build-Befehl:
docker build -t my_repo/my_app .
Vielen Dank für Ihre Hilfe!
Bearbeiten: Jeder andere Ordner funktioniert. Es ist auch kein Problem mit Dateiberechtigungen. Es scheint, dass Docker nur doesn't like the dist folder. Was ist scheiße.
Ich habe gerade das getan. Fragte sich, warum meine .rpm nicht hinzugefügt wurde. Es wurde alles klar (nachdem ich das gelesen hatte), als ich merkte, dass ich * .rpm in .dockerignore hatte. Vielen Dank. – Chris
diese Antwort hat mir schon einmal geholfen; Ich musste das heute noch googeln, und es gab eigentlich keine Datensätze in '.dockerignore' für den Ordner, den ich hinzufügen wollte ... dann habe ich einen Tippfehler im Namen eines Ordners gefunden: \ –
Doh !!! Ich habe stundenlang mit diesem Thema gekämpft, danke, dass ich sonst etwas geschrieben hätte, dass ich verloren gegangen wäre. Meine Dummheit ging noch weiter Ich hatte * in .dockerignore :( –