Questions tagged «dockerfile»

Dockerfile是包含说明以构建Docker映像的文件

3
Docker仅在发生更改时如何运行pip requirements.txt?
在Dockerfile中,我有一个要安装的层requirements.txt: FROM python:2.7 RUN pip install -r requirements.txt 当我构建Docker映像时,无论对该文件进行任何更改,它都会运行整个过程。 如何确保仅pip install -r requirements.txt在文件发生更改的情况下运行Docker ? Removing intermediate container f98c845d0f05 Step 3 : RUN pip install -r requirements.txt ---> Running in 8ceb63abaef6 Collecting https://github.com/tomchristie/django-rest-framework/archive/master.zip (from -r requirements.txt (line 30)) Downloading https://github.com/tomchristie/django-rest-framework/archive/master.zip Collecting Django==1.8.7 (from -r requirements.txt (line 1))

9
Docker-compose检查mysql连接是否准备就绪
我试图确保我的应用容器在数据库容器启动并且准备接受连接之前不运行迁移/启动。 所以我决定使用运行状况检查,并取决于docker compose文件v2中的选项。 在应用程序中,我有以下内容 app: ... depends_on: db: condition: service_healthy 另一方面,数据库具有以下运行状况检查 db: ... healthcheck: test: TEST_GOES_HERE timeout: 20s retries: 10 我尝试了几种方法,例如: 确保已创建数据库DIR test: ["CMD", "test -f var/lib/mysql/db"] 获取mysql版本: test: ["CMD", "echo 'SELECT version();'| mysql"] 对管理员执行ping操作(将db容器标记为运行状况良好,但似乎不是有效的测试) test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"] 有人对此有解决方案吗?


4
Docker-图像操作系统“ windows”不能在该平台上使用
我在Windows 10机器上尝试过此操作: Dockerfile: From microsoft/nanoserver CMD ["echo", "Hello World"] 聚苯乙烯 C:\FSD\Docker\Trial1> docker build -t lea/leatest . Sending build context to Docker daemon 2.048kB Step 1/2 : FROM microsoft/nanoserver latest: Pulling from microsoft/nanoserver bce2fbc256ea: Pulling fs layer 58f68fa0ceda: Pulling fs layer image operating system "windows" cannot be used on this platform

5
Docker在上下文之外遵循符号链接
另一个Docker符号链接问题。我有一堆文件要复制到我的所有Docker构建中。我的目录结构是: parent_dir - common_files - file.txt - dir1 - Dockerfile - symlink -> ../common_files 在上面的示例中,当我在dir1中进行docker构建时,我希望将file.txt复制过来。但是我不想维护file.txt的多个副本。每此链接,作为搬运工版本0.10,码头工人的作品必须 按照容器根目录内的符号链接获取ADD构建说明。 但是当我在Dockerfile中使用以下任一行进行构建时,我没有得到这样的文件或目录: ADD symlink /path/dirname 要么 ADD symlink/file.txt /path/file.txt 安装选项不会为我解决(跨平台...)。我尝试tar -czh . | docker build -t没有成功。 有没有一种方法可以使Docker遵循符号链接并将common_files / file.txt复制到已构建的容器中?

18
无法为COPY创建docker镜像失败:stat / var / lib / docker / tmp / docker-builder错误
我想创建一个码头工人形象。这是我的工作目录:Dockerfile.in test.json test.py 这是我的Dockerfile: COPY ./test.json /home/test.json COPY ./test.py /home/test.py RUN python test.py 当我启动此命令时: docker build -f Dockerfile.in -t 637268723/test:1.0 . 它给了我这个错误: `Step 1/5 : COPY ./test.json /home/test.json ---> Using cache ---> 6774cd225d60 Step 2/5 : COPY ./test.py /home/test.py COPY failed: stat /var/lib/docker/tmp/docker-builder428014112/test.py: no such file or directory` 谁能帮我?

3
在文件更改时重建Docker容器
为了运行ASP.NET Core应用程序,我生成了一个dockerfile,该文件构建了该应用程序,并将源代码复制到了容器中,该容器由Git使用Jenkins获取。因此,在我的工作区中,我在dockerfile中执行以下操作: WORKDIR /app COPY src src 虽然Jenkins使用Git正确更新了主机上的文件,但Docker并未将此文件应用于我的映像。 我的基本构建脚本: #!/bin/bash imageName=xx:my-image containerName=my-container docker build -t $imageName -f Dockerfile . containerRunning=$(docker inspect --format="{{ .State.Running }}" $containerName 2> /dev/null) if [ "$containerRunning" == "true" ]; then docker stop $containerName docker start $containerName else docker run -d -p 5000:5000 --name $containerName $imageName fi …

5
Docker构建Dockerfile时如何缓存RUN npm安装指令
我目前正在为我的应用程序开发Node后端。在dockerizing时docker build .,最长的阶段是RUN npm install。该RUN npm install指令在每一个小的服务器代码更改上运行,这通过增加构建时间来降低生产率。 我发现在应用程序代码所在的位置运行npm install并使用ADD指令将node_modules添加到容器中可以解决此问题,但这远非最佳实践。这有点破坏了将其Docker化的整个想法,并且使容器的重量增加了很多。 还有其他解决方案吗?

12
如何在Docker机器中挂载本地卷
我正在尝试将docker-machine与docker-compose一起使用。文件docker-compose.yml的定义如下: web: build: . command: ./run_web.sh volumes: - .:/app ports: - "8000:8000" links: - db:db - rabbitmq:rabbit - redis:redis 运行时docker-compose up -d一切顺利,直到尝试执行命令并产生错误为止: 无法启动容器b58e2dfa503b696417c1c3f49e2714086d4e9999bd71915a53502cb6ef43936d:[8]系统错误:exec:“ ./run_web.sh”:stat ./run_web.sh:无此类文件或目录 本地卷未安装到远程计算机上。建议使用Webapp的代码挂载本地卷的策略是什么?



6
如何在保留新行的同时在Dockerfile中编写多行命令?
我想在Dockerfile中编写以下RUN命令。但是,泊坞窗不保留新行。 RUN echo "[repo] \ name = YUM Repository \ baseurl = https://example.com/packages/ \ enabled = 1 \ gpgcheck = 0" > /etc/yum.repos.d/Repo.repoxyz 我知道\每一行的末尾都转义了新行。但是,有什么办法可以写多行来保存新行?


4
E:软件包“ mysql-client”在使用docker compose的php-fpm映像构建中没有安装候选对象
我是docker的新手,所以我尝试通过laravel项目了解更多有关docker的信息,并按照以下教程进行操作: https://www.digitalocean.com/community/tutorials/how-to-set-up-laravel-nginx-and-mysql-with-docker-compose?comment=77842 我已经根据教程中的内容对Dockerfile进行了一些调整,但是即使教程文件也会导致相同的结果。 FROM php:7.3-fpm # Copy composer.lock and composer.json COPY composer.lock composer.json /var/www/ # Install dependencies RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - && \ apt-get update && apt-get install -y mysql-client \ RUN npm install -g npm # Clear cache RUN apt-get clean && rm -rf /var/lib/apt/lists/* # …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.