explicacion - php con docker
Docker: no se puede preparar el contexto: no se pueden evaluar los enlaces simbólicos en la ruta del Dockerfile: GetFileAttributesEx (21)
Asegúrese de que el nombre de archivo "Dockerfile" no esté guardado con ninguna extensión. Simplemente cree un archivo sin ninguna extensión.
Y asegúrese de que Dockerfile esté en el mismo directorio desde el que está tratando de construir la imagen de Docker.
Acabo de descargar Docker Toolbox para Windows 10 de 64 bits hoy. Estoy pasando por el tutorial. Recibo el siguiente error cuando intento construir una imagen usando un Dockerfile.
Pasos:
- Lanzamiento de la terminal de inicio rápido de Docker.
- Testdocker después de crearlo.
- Prepare Dockerfile como se documenta en el enlace web "Cree su propia imagen"
- corrió debajo del comando
docker build -t docker-whale .
Error: $ docker build -t docker-whale .
unable to prepare context: unable to evaluate symlinks in Dockerfile path: GetFileAttributesEx C:/Users/Villanueva/Test/testdocker/Dockerfile: The system cannot find the file specified.
Por cierto: probé varias opciones mencionadas en https://github.com/docker/docker/issues/14339
$ docker info
Containers: 4
Running: 0
Paused: 0
Stopped: 4
Images: 2
Server Version: 1.10.1
Storage Driver: aufs
Root Dir: /mnt/sda1/var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 20
Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
Volume: local
Network: bridge null host
Kernel Version: 4.1.17-boot2docker
Operating System: Boot2Docker 1.10.1 (TCL 6.4.1); master : b03e158 - Thu Feb 11 22:34:01 UTC 2016
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 996.2 MiB
Name: default
ID: C7DS:CIAJ:FTSN:PCGD:ZW25:MQNG:H3HK:KRJL:G6FC:VPRW:SEWW:KP7B
Debug mode (server): true
File Descriptors: 32
Goroutines: 44
System Time: 2016-02-19T17:37:37.706076803Z
EventsListeners: 0
Init SHA1:
Init Path: /usr/local/bin/docker
Docker Root Dir: /mnt/sda1/var/lib/docker
Labels:
provider=virtualbox
Creé mi DockerFile con la herramienta VS2017 Docker Support y tuve el mismo error.
Después de un tiempo me di cuenta de que no estaba en el directorio correcto que contiene el Dockerfile
(~/source/repos/DockerWebApplication/)
.
cd''ed al archivo correcto
(~/source/repos/DockerWebApplication/DockerWebApplication)
que estaba dentro del proyecto y creó con éxito la imagen del docker.
El nombre del archivo debe ser
Dockerfile
y no
.Dockerfile
.
El archivo no debe tener ninguna extensión.
El problema es que el nombre del archivo debe ser Dockerfile y no DockerFile o dockerfile, debe ser D mayúscula seguido de ockerfile en minúsculas.
El problema está relacionado con el procedimiento de creación de DockerFile.
Para trabajar, abra cmd, cd en el directorio de interés y escriba:
abc>DockerFile
Esto creará un archivo llamado DockerFile dentro de su carpeta.
Ahora escriba:
notepad DockerFile
Esto abrirá el archivo DockerFile en el bloc de notas y tendrá que copiar / pegar el código estándar proporcionado.
Guarde el archivo y ahora, finalmente, cree su imagen con Docker escribiendo:
docker build -t docker-whale .
Esto está funcionando para mí y espero que ayude a otros
El siguiente comando funcionó para mí docker build -t docker-whale -f Dockerfile.txt.
En WSL, parece haber un problema con la conversión de ruta. La ubicación del Dockerfile en Ubuntu (donde estoy ejecutando docker y donde vive Dockerfile) es "/ home / sxw455 / App1", pero ninguno de estos comandos funcionó:
$ pwd
/home/sxw455/App1
$ ll
total 4
drwxrwxrwx 0 sxw455 sxw455 4096 Dec 11 19:28 ./
drwxr-xr-x 0 sxw455 sxw455 4096 Dec 11 19:25 ../
-rwxrwxrwx 1 sxw455 sxw455 531 Dec 11 19:26 Dockerfile*
-rwxrwxrwx 1 sxw455 sxw455 666 Dec 11 19:28 app.py*
-rwxrwxrwx 1 sxw455 sxw455 12 Dec 11 19:27 requirements.txt*
$ docker build -t friendlyhello .
unable to prepare context: unable to evaluate symlinks in Dockerfile path: GetFileAttributesEx C:/Windows/System32/Dockerfile: The system cannot find the file specified.
$ docker build -t friendlyhello "/home/sxw455/App1"
unable to prepare context: path "/home/sxw455/App1" not found
Pero en Windows, la ruta real es:
C:/Users/sxw455/AppData/Local/Packages/CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc/LocalState/rootfs/home/sxw455/App1
Y entonces tuve que hacer esto (aunque lo ejecuté desde bash):
$ docker build -t friendlyhello
"C:/Users/sxw455/AppData/Local/Packages/CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc/LocalState/rootfs/home/sxw455/App1"
Sending build context to Docker daemon 5.12kB
Step 1/7 : FROM python:2.7-slim
---> 0dc3d8d47241
Step 2/7 : WORKDIR /app
---> Using cache
---> f739aa02ce04
Step 3/7 : COPY . /app
---> Using cache
---> 88686c524ae9
Step 4/7 : RUN pip install --trusted-host pypi.python.org -r requirements.txt
---> Using cache
---> b95f02b14f78
Step 5/7 : EXPOSE 80
---> Using cache
---> 0924dbc3f695
Step 6/7 : ENV NAME World
---> Using cache
---> 85c145785b87
Step 7/7 : CMD ["python", "app.py"]
---> Using cache
---> c2e43b7f0d4a
Successfully built c2e43b7f0d4a
Successfully tagged friendlyhello:latest
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have ''-rwxr-xr-x'' permissions. It is recommended to double check and reset permissions for sensitive files and directories.
Tuve problemas similares con las variables de entorno durante la instalación inicial, y seguí algunos consejos que decían instalar Windows DockerCE y piratear las variables de entorno en lugar de instalar Ubuntu DockerCE, porque (espero recordar esto correctamente) que WSL no se implementa completamente systemctl. Una vez que se realiza la instalación de Windows Docker CE y se establecen las variables de entorno, Docker funciona bien en WSL / Ubuntu.
En Windows 10 ... el período es el primer parámetro
docker build . -t docker-whale
Eso es solo porque el Bloc de notas agrega ".txt" al final de Dockerfile
Había nombrado mi archivo dockerfile en lugar de Dockerfile (en mayúscula), y una vez que lo cambié, comenzó a procesar mi "Dockerfile".
Intenté esto y funcionó:
$ docker build -t test_dotnet_image
"C:/Users/ssundarababu/Documents/Docker/Learn/SimpleDockerfile"
Consulte las comillas y las comillas alrededor del nombre de la carpeta.
Nota: En la carpeta
"C:/Users/ssundarababu/Documents/Docker/Learn/SimpleDockerfile"
tengo mi Dockerfile.
Lo más importante es asegurarse de que su nombre de archivo sea
Dockerfile
si usa otro nombre que no funcionará (al menos no lo hizo para mí).
Además, si está en el mismo directorio donde está el Dockerfile, use a
.
es decir,
docker build -t Myubuntu1:v1 .
o use la ruta absoluta, es decir,
docker build -t Myubuntu1:v1 /Users/<username>/Desktop/Docker
Obtuve esto en Windows cuando la ruta en la que estaba trabajando estaba bajo un directorio de Junction. Entonces, mi solución fue no trabajar bajo ese camino.
Originalmente había creado mi Dockerfile en PowerShell y, aunque no vi una extensión en el archivo, se mostró como un Tipo de archivo PS ... una vez que creé el archivo desde Notepad ++, asegúrese de seleccionar el archivo "Todos los tipos ( . )" Escriba sin extensión en el Nombre de archivo (Dockerfile). Eso permitió que mi comando de compilación de imágenes se completara correctamente ... Solo asegúrese de que su Dockerfile tenga un Tipo de "Archivo" ...
Para construir Dockerfile, guarde contenido automatizado en Dockerfile. no Dockerfile porque al abrir un comando de archivo:
$ notepad Dockerfile
(Se escribe un archivo de texto para que el archivo no se pueda construir)
Para construir el archivo ejecute:
$ notepad Dockerfile
y ahora corre:
$ docker build -t docker-whale .
Asegúrese de estar en el directorio actual de Dockerfile.
Si está trabajando en Windows 8, estaría usando Docker toolbox. Desde el directorio mydockerbuild ejecute el siguiente comando ya que su Dockerfile es un archivo de texto
docker build -t docker-whale -f ./Dockerfile.txt .
Simplemente elimine la extensión .txt de Dockerfile y ejecute el comando
docker build -t image-name
Funcionará seguro.
Tengo este error (en MacBook) aunque utilicé el comando correcto para crear la imagen,
docker build -t testimg .
Más tarde descubrí que ese camino es el problema. Simplemente navegue a la ruta correcta que contiene el archivo acoplable. Simplemente revise su directorio de trabajo actual. ¡Nada de pánico!
Yo mi caso (se ejecuta desde Windows 10)
1) Cambie el nombre del archivo
myDockerFile.Dockerfile
a
Dockerfile
(
sin
extensión de archivo).
Luego ejecute
desde
fuera de la carpeta este comando:
docker build ./Docker-LocalNifi/
Esto está funcionando para mí y para mis colegas en el trabajo, espero que también funcione para usted.
mientras ejecuta el siguiente comando:
docker build -t docker-whale .
compruebe que Dockerfile esté presente en su directorio de trabajo actual.
En Mac
funciona para el siguiente comando.
(Espero que su
.Dockerfile
esté en su directorio raíz).
docker build -t docker-whale -f .Dockerfile .