Tag: dockerfile

从Dockerfile创buildbash脚本去掉评论

我正在创build一个需要创build一个特定的bash脚本的Docker容器。 我在Dockerfile中使用下面的RUN语句: RUN printf "#!/bin/bash\n \ # This is a bash comment inside the script\ ls -l" > /home/myuser/script.sh 它运作良好,但是由此产生的脚本只是: #!/bin/bash ls -l 所以,最后的文件中缺lessbash注释。 我怀疑是因为Docker认为该行是一个Dockerfile注释,但由于它被包含在双引号内,所以我认为很明显情况并非如此。 当然,我可以通过将整个脚本包含在一行中,或者将其放在一个外部文件中来解决这个问题,但是我认为应该可以在多行中引入bash注释,而不会出现这种问题。 任何解决方法? 我尝试了所有的逃跑,没有成功。

语法错误附近的意外令牌“(”执行shell脚本为mongo数据库

我正在尝试创build一个用于pipe理mongo db及其默认内容的Dockerfile 。 这里是docker文件和相关的shell脚本 – DockerFile – # Dockerizing MongoDB: Dockerfile for building MongoDB images # Based on ubuntu:16.04, installs MongoDB following the instructions from: # http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/ FROM ubuntu:16.04 # Installation: # Import MongoDB public GPG key AND create a MongoDB list file RUN apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv EA312927 RUN echo "deb http://repo.mongodb.org/apt/ubuntu $(cat […]

无法正常closuresdocker进程

我希望能够优雅地closuresdocker进程。 我通过以下博客文章中的想法推导出这些文件: https : //husobee.github.io/golang/ecs/2016/05/19/ecs-graceful-go-shutdown.html 这是我的文件 1)Dockerfile FROM debian:jessie ADD app /app RUN apt-get update –fix-missing RUN apt-get install -y golang CMD ["go", "run", "/app/main.go"] 2)app / main.go package main import "os" import "syscall" import "fmt" import "time" import "os/signal" func main() { // create a "returnCode" channel which will be the return code of […]

链接Docker图像并按顺序执行

我正在用自己的图像扩展APIMan / Wildfly Docker镜像,这将会做两件事情: 1)将我的.war文件应用程序放到Wildfly standalone / deployments目录中 2)执行一系列将查询Wildfly服务器的cURL命令来configurationAPIMan。 最初,我尝试创build两个Docker镜像(第一个放在.war文件中,第二个放在cURL命令中),但是我错误地认为最内层的CMD指令会先执行,CMD会向外执行。 例如: ImageA: FROM jboss/apiman-wildfly:1.1.6.Final RUN /opt/jboss/wildfly/bin/add-user.sh admin admin –silent COPY /RatedRestfulServer/target/RatedRestfulServer-1.0-SNAPSHOT.war /opt/jboss/wildfly/standalone/deployments/ CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0", "-c", "standalone-apiman.xml"] 和 ImageB: FROM ImageA COPY /configure.sh /opt/jboss/wildfly/ CMD ["/opt/jboss/wildfly/configure.sh"] 我最初假设在运行时Wildfly / APIMAN将首先启动(根据ImageA CMD指令),然后运行我的自定义脚本(根据ImageB CMD指令)。 我假设这是不正确的,因为在整个层次结构中,只执行1个CMD指令(链中最外面的Dockerfile中的最后一个)? 于是,我试图将所有东西都合并到一个Dockerfile中(在构build过程中)启动Wildfly / APIMAN,运行cURL命令,closureswildfly服务器,然后CMD命令在运行时启动备份,Wildfly / APIMan进行configuration。 但是,这不起作用,因为当我启动Wildfly(作为构build的一部分)时,它控制着控制台并等待显示日志消息,因此构build从不完成。 如果我在RUN命令的末尾附加一个'&',它不会运行( Dockerfile:RUN会导致一个No op )。 […]

如何使用gliderlabs / alpine设置Dockerfile中的时区:3.3

我的Dockerfile是: FROM gliderlabs/alpine:3.3 RUN set -x \ && buildDeps='\ python-dev \ py-pip \ build-base \ ' \ && apk –update add python py-lxml py-mysqldb $buildDeps \ && rm -rf /var/cache/apk/* \ && mkdir -p /app ENV INSTALL_PATH /app ENV TZ=Asia/Shanghai WORKDIR $INSTALL_PATH RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone COPY requirements-docker.txt ./ […]

如何从docker-compose.ci.build.yml文件构build&推送容器

我正在使用ASP.NET Core,并使用Visual Studio的“ 添加Docker支持”function来开始。 这将docker-compose.ci.build.yml文件添加到我的项目中,该项目应该在CI服务器上使用。 如何从撰写文件构buildDocker镜像并将镜像推送到我的私有Dockerregistry。 我已经尝试了docker-compose build命令: docker-compose -f docker-compose.ci.build.yml build 但是这会输出一个错误: ci-build使用图像,跳过

Docker的默认包含哪些内容?

有一个选项, FROM scratch使用它看起来像一个非常有吸引力的build设我的Go容器的方式。 我的问题是它仍然有本地运行二进制文件,我需要添加任何东西,以便可靠地运行Go二进制文件? 编译Go二进制似乎运行至less在我的笔记本电脑上。 我的目标是保持图像的大小为了安全和基于pipe理的原因。 在最佳情况下,我的容器将不能在构build阶段之外执行二进制文件或shell命令。

在使用本地包构builddocker时,导入path不会以“hostname”开头

我试图build立一个本地包的docker,但得到错误'导入path不以主机名开始'。 如果我的理解是正确的,我的Dockerfile应该是 FROM golang:onbuild EXPOSE 8080 基于这篇文章使用Docker部署Go服务器 我使用这个代码git-go-websiteskeleton作为构builddocker的源码。 完整的错误在这里。 导入“git-go-websiteskeleton / app / common”:导入path不以主机名开头 包git-go-websiteskeleton / app / common:无法识别的导入path“git-go-websiteskeleton / app / common” 导入“git-go-websiteskeleton / app / home”:导入path不以主机名开头 包git-go-websiteskeleton / app / home:无法识别的导入path“git-go-websiteskeleton / app / home” 导入“git-go-websiteskeleton / app / user”:导入path不以主机名开头 包git-go-websiteskeleton / app / user:无法识别的导入path“git-go-websiteskeleton / app / user” 谢谢你的帮助。

运行docker映像时运行时错误“oci运行时错误

我有下面的动物园pipe理员安装Dockerfile,我已经build立了docker的形象。 FROM openjdk:8-jre-alpine # Install required packages RUN apk add –no-cache \ bash \ su-exec ENV ZOO_USER=zookeeper \ ZOO_CONF_DIR=/conf \ ZOO_DATA_DIR=/data \ ZOO_DATA_LOG_DIR=/datalog \ ZOO_PORT=2181 \ ZOO_TICK_TIME=2000 \ ZOO_INIT_LIMIT=5 \ ZOO_SYNC_LIMIT=2 # Add a user and make dirs RUN set -x \ && adduser -D "$ZOO_USER" \ && mkdir -p "$ZOO_DATA_LOG_DIR" "$ZOO_DATA_DIR" "$ZOO_CONF_DIR" \ && […]

'sh:1:file:not found'在Docker容器中创build一个android模拟器时

我正在尝试在Docker容器中创build一个Android模拟器,但遇到了一些问题。 SDK更新和AVD创build成功,我尝试创build模拟器,出现以下错误: ./emulator -avd test-22 -no-skin -no-audio -no-window sh: 1: file: not found sh: 1: file: not found WARNING: Cannot decide host bitness because $SHELL is not properly defined; 32 bits assumed. ERROR: 32-bit Linux Android emulator binaries are DEPRECATED, to use them 注:运行最后的docker版本,并使用java:8-jdk图像。 我的dockerfile可以在这里find=> https://gist.github.com/leoGalani/1f74621b8e82bd5bc8db586d1f34b8a2 – 有些人告诉我为API22安装x86 intel ABI / ARM,但是我无法find软件包名称,所以我可以通过命令行来安装。