Docker:" lstat no hay tal archivo o directorio " error al construir la imagen. El archivo está ahí
Quiero implementar un simple Boilerplate de JS en Docker Cloud. Utilizo un Dockerfile que ya utilicé para una repetición y una imagen diferentes. El Dockerfile es bastante simple. Solo se basa en el nginx oficial, agrega dos archivos de configuración y luego la carpeta de salida de mi boilerplate gulp a la raíz nginx. Así que lo copié del directorio one al nuevo boilerplate ya que quiero probar este.
El error que estoy obteniendo es este (última línea)
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
Pero la carpeta dist es alli.
.
├── 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
Podría ser digno de mención que la carpeta a copiar se llamaba ./public
Así que me imagino que esto es algún tipo de problema de caché de Docker raro.
Mi 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
Lo que he intentado hasta ahora:
- Eliminar imágenes colgantes y no utilizadas
- Eliminar la imagen que fue producida por el mismo archivo docker antes de
- Usando una etiqueta diferente
Mi orden de compilación:
docker build -t my_repo/my_app .
Gracias por su ¡Socorro!
Editar: Todas las demás carpetas funcionan. Tampoco es un problema de permisos de archivo. Parece que a Docker just no le gusta la carpeta dist. Lo cual apesta.
8 answers
Bueno, yo estúpido. Había un archivo .dockerignore
con dist
en la carpeta del proyecto... Caso cerrado
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-23 14:18:41
Tuve el mismo problema, pero no era el .dockerignore
, olvidé especificar el directorio para ejecutar docker. En mi caso ese directorio era .
Mi comando completo antes era
docker build - < Dockerfile
Y después fue
docker build . < Dockerfile
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-23 15:31:16
Pongo el directorio después del comando build used-f para especificar el dockerfile
Eg:
sudo docker build . -t test:i386 -f mydockerfile
El punto después de la compilación es el directorio a partir del cual construir, en este caso presente dir.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-16 08:23:05
También tuve el mismo problema, el problema no era mi .dockerignore
sino mi .gitignore
, ya que no pude eliminar dist de mi gitgnore He agregado cp
comando en mi Dockerfile:
....
WORKDIR /
RUN cp -r public/dist/* www/
EXPOSE 80
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-08 17:44:06
Tuve este problema, y el problema resultó ser que había insertado un comentario, por ejemplo,
COPY file1.txt dest/ # comment
Resulta que no puedes hacer eso.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-28 00:31:05
Un error relacionado en la versión 138 del SDK de Google App Engine resultó en el mismo mensaje de error. Este error se ha corregido en la versión 139 del SDK. Puede actualizar a la versión más reciente con el siguiente comando:
gcloud components upgrade
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-13 00:39:41
Para el siguiente error de compilación de docker,
COPY failed: stat /<**path**> :no such file or directory
Lo conseguí reiniciando el servicio docker.
sudo service docker restart
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-12 07:16:47
(créditos: https://serverfault.com/a/666154/152918)
Los archivos que desea copiar deben estar dentro del directorio de imágenes de Docker. No puede hacer referencia a archivos en ningún lugar de su sistema de archivos.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-09 06:53:09