
在Dockerfile中运行脚本
我正在尝试在Dockerfile的构建过程中运行脚本。但这似乎不起作用。我尝试过这种方式:FROM php:7-fpmADD bootstrap.sh /ENTRYPOINT ["/bin/bash", "/bootstrap.sh"]也这样:FROM php:7-fpm ADD bootstrap.sh /RUN bash -c "/bootstrap.sh"并且也执行我正在运行的容器:docker exec symfony /bin/bash -c "/bootstrap.sh"似乎没有任何作用。...
2024-01-10
Dockerfile中的交互式命令
我正在尝试使用dockerbuild带有适当命令的命令自动创建开发Docker映像Dockerfile。我需要在RUN命令中运行的脚本之一希望用户单击以阅读其许可协议。因此,有两个问题:?中所有RUN命令的输出在哪里Dockerfile?可以与上述命令进行交互的解决方案是什么?现在,docker build命令陷入僵局,要求用户无限循...
2024-01-10
将主机环境变量传递给dockerfile
如何将主机环境变量(例如用户名和主机名)传递给dockerfile?例如,如果我的用户名是taha:echo $USERtaha如何编写Docker文件以获得相同的输出?FROM centos:centos7 ARG myuser=$USER CMD echo $myuser回答:我遇到了同样的问题。我的解决方案是在docker-compose.yml内部提供变量,因为yml支持使用环境变量。我认...
2024-01-10
Dockerfile中的条件ENV
是否可以ENV根据构建的值在Dockerfile中有条件地设置变量ARG?例如:类似ARG BUILDVAR=sadENV SOMEVAR=if $BUILDVAR -eq "SO"; then echo "hello"; else echo "world"; fi更新:基于Mario的答案的当前用法:ARG BUILD_ENV=prodENV NODE_ENV=productionRUN if [ "${BUILD_ENV}" = "test" ]; then export NODE_ENV=develo...
2024-01-10
在dockerfile中插入条件RUN语句
我正在尝试编写一个docker文件,该文件将运行RUN命令以在package.json文件中搜索单词并对其执行操作:这是我简单的dockerfile:FROM ubuntu:14.04COPY package.json package.jsonRUN if grep -q "grunt" package.json; then echo succeed fi如您所见,我只想要一个简单的if语句,但它得到此错误:Step 2 : RUN if grep -q "grunt" package.json; t...
2024-01-10
如何将文件从dockerfile复制到主机?
dockerfile成功构建后,我想获取一些文件,但它不会将文件从容器复制到主机。这意味着当我构建了dockerfile时,这些文件已经被托管。回答: 支持将文件“从Dockerfile”复制到主机。Dockerfile只是指定如何构建映像的配方。构建时,您可以将文件从主机复制到要构建的映像(使用或COPY指令ADD)您还可...
2024-01-10
Dockerfile:RUN导致无操作
我有一个Dockerfile,其中我试图运行一个启动Java进程的守护进程。如果我将脚本嵌入到Dockerfile中,就像这样。RUN myscript.sh在生成的容器上运行/ bin / bash时, 没有 看到jps中的条目。但是,在这种情况下,我可以轻松将脚本嵌入为 CMDdocker run asdfg我看到该过程正常启动。所以,我的问题是,当我们在...
2024-01-10
Dockerfile复制保持子目录结构
我正在尝试将多个文件和文件夹从本地主机复制到Docker映像构建中。这些文件是这样的:folder1 file1 file2folder2 file1 file2我正在尝试这样制作副本:COPY files/* /files/但是,所有文件都放在/ files /中,Docker中是否可以保留子目录结构以及将文件复制到其目录中?回答:使用以下Dockerfile从COP...
2024-01-10
找不到Dockerfile CMD命令
我有以下内容Dockerfile:FROM nodesource/node:jessieADD ./ /SOMEPATHRUN cd /SOMEPATH && npm installWORKDIR /SOMEPATHCMD [“bash”, “npm run lint”]当我使用以下命令构建并运行此映像时:docker run -v $(pwd):/SOMEPATH Name_of_image我收到以下错误:/bin/sh: 1: [“bash”,: not found但是,当我像这样运行图像时,它可以工作...
2024-01-10
如何为开发和生产配置不同的dockerfile
我将docker用于laravel项目的开发和生产。我用于开发和生产的dockerfile略有不同。例如,我在开发环境中将本地目录安装到docker容器中,因此我不需要为代码中的每个更改进行docker构建。由于挂载目录仅在运行docker容器时可用,因此无法在开发文件中将诸如“ composer install”或“ npminstall”之类的命令放...
2024-01-10
Dockerfile为可执行文件构建图像
Docker技术新增功能,我正在尝试为.exe文件构建和映像以及容器。Dockerfile为可执行文件构建图像我的团队已经在Windows上的visual studio中创建了一个exe文件来执行作业。现在我需要编写一个dockerfile来创建一个图像和容器。所以,当我开始我的容器时,工作必须运行。这是我dockerfile是什么样子:FROM microso...
2024-01-10
如何防止Dockerfile指令被缓存?
在我中,Dockerfile我使用curl或ADD下载档案的最新版本,例如:FROM debian:jessie...RUN apt-get install -y curl...RUN curl -sL http://example.com/latest/archive.tar.gz --output archive.tar.gz...ADD http://example.com/latest/archive2.tar.gz...RUN使用curl或ADD创建自己的图像层的语句。它将用作以后执行的缓存doc...
2024-01-10
Dockerfile COPY指令失败?
所有人,我正在尝试将文件从主机持久复制到映像,以便基于该映像启动的每个容器都可以使用这些文件。在debian wheezy64bit上以virtualbox guest身份运行。Dockerfile非常简单(安装八度映像):FROM debian:jessie MAINTAINER GG_Python <[redacted]@gmail.com>RUN apt-get update RUN apt-get updateRUN apt-get install -y octave octave-image oc...
2024-01-10
Dockerfile构建-可以忽略错误吗?
我有一个Dockerfile。生成映像时,由于以下错误而生成失败:automake: error: no 'Makefile.am' found for any configure outputError build: The command [/bin/sh -c aclocal && autoconf && automake -a] returned a non-zero code: 1这实际上是无害的。该库可以很好地构建,但是Docker在收到此错误后会停止构建。有什么办法可以指示Docker忽略这一...
2024-01-10
绑定容器端口以托管在Dockerfile中
通常在绑定端口时,我会这样做docker run -p hostport:dockerport...,但是我可以在我的内部指定端口绑定Dockerfile吗?我正在启动一个监听端口的服务器。服务器通过cmd行参数获取端口。如果我不必在两个位置(在dockerruncommand和中Dockerfile)重复端口,那将是很棒的回答:在dockerfile您只能使用expose。该EXPOSE...
2024-01-10
如何在Dockerfile中设置映像名称?
您可以在构建自定义图像时设置图像名称,如下所示:docker build -t dude/man:v2 . # Will be named dude/man:v2有没有一种方法可以在Dockerfile中定义映像的名称,所以我不必在docker build命令中提及它?回答:Dockerfile中不支持图像的标记。这需要在您的构建命令中完成。解决方法是,您可以使用docker-compose.yml进...
2024-01-10
volume_from指令-docker撰写
使用以下docker-compose.yml文件:test: build: ../../ dockerfile: docker/dev/Dockerfile volumes_from: - cachevcachev: build: ../../ dockerfile: docker/dev/Dockerfile volumes: - /build entrypoint: "true"cachev上面文件中的服务启动了卷容器,该卷容器/var/lib/docker/在Docker主机...
2024-01-10
使用dockerfile运行容器时如何运行.sh文件
我正在制作一个dockerfile来安装elasticsearch:6.5.4并将少量文件添加到所需位置,并运行一个名为test.sh的脚本,以便在Elasticsearch运行时在elasticsearch中创建新索引。我不确定是否应该使用RUN,CMD或ENTRYPOINT来执行此操作。我已经通过注释最后一行(包含RUN / CMD / ENTRYPOINTtest.sh)成功构建了映像并运行了容器...
2024-01-10
在dockerfile中运行conda更新时出现问题
我正在尝试使用一些conda环境创建一个docker容器。当我在交互模式下运行容器时conda update --allconda env create -f env.yml运行没有问题。但是,每当我尝试使用Docker文件执行这些命令时,我都会收到/bin/sh: 1: conda: command not foudDocker文件如下所示:FROM ubuntu:latestRUN apt-get update && \ apt-get install unzip && \ m...
2024-01-10
Dockerfile中VOLUME的作用是什么
我想加深对Docker容量的了解,并且很难弄清以下内容的差异/用例:该docker volume create命令的 docker run -v /path:/host_path文件中的VOLUME条目Dockerfile我特别不明白如果将VOLUME条目与-v标志结合在一起会发生什么。回答:卷是存储在 /var/lib/docker/volumes/...您可以在Dockerfile中声明它,这意味着每次从映像启...
2024-01-10
Dockerfile中RUN和CMD之间的区别
我对何时应该使用CMDvs 感到困惑RUN。例如,要执行bash / shell命令(即ls-la),我将始终使用它,CMD或者是否存在我会使用的情况RUN?试图了解有关这两个类似Dockerfile指令的最佳实践。回答:RUN是映像构建步骤,RUN命令后将容器的状态提交到容器映像。一个Dockerfile可以有很多RUN步骤相互叠加以构建映像...
2024-01-10
Dockerfile:在一行中设置多个环境变量
我给人的印象是,可以如下将环境变量设置在一行上,以最大程度地减少中间图像。FROM alpine:3.6ENV RUBY_MAJOR 2.4 \ RUBY_VERSION 2.4.1 \ RUBY_DOWNLOAD_SHA256 4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654 \ RUBYGEMS_VERSION 2.6.12 \ BUNDLER_VERSION 1.15.3但是,运行基于此代码段的容器...
2024-01-10
设置MySQL并在Dockerfile中导入转储
我正在尝试为我的LAMP项目设置Dockerfile,但是启动MySQL时遇到了一些问题。我在Dockerfile上有以下几行:VOLUME ["/etc/mysql", "/var/lib/mysql"]ADD dump.sql /tmp/dump.sqlRUN /usr/bin/mysqld_safe & sleep 5sRUN mysql -u root -e "CREATE DATABASE mydb"RUN mysql -u root mydb < /tmp/dump.sql但我不断收到此错误:E...
2024-01-10
为什么chown在Dockerfile中不起作用?
我的Dockerfile创建一个目录,将其chown,然后再列出该目录。该目录仍归root用户所有。这是为什么?这是Dockerfile:FROM ubuntu:preciseRUN useradd -d /home/testuser -m -s /bin/bash testuserRUN mkdir -p /var/local/testrunner/logsVOLUME ["/var/local/testrunner/logs"]RUN grep testuser /etc/passwdRUN grep ...
2024-01-10
Dockerfile中的条件COPY / ADD?
我想在Dockerfile内将文件复制到映像中(如果存在),pip的requirements.txt文件似乎是一个不错的选择,但是如何实现呢?COPY (requirements.txt if test -e requirements.txt; fi) /destination...RUN if test -e requirements.txt; then pip install -r requirements.txt; fi要么if test -e requirements.txt; then C...
2024-01-10
