Tag: dockerfile

Docker的mysql官方图片

在这个Dockerfile中 ,创build了一个“mysql”用户,但是没有“USER mysql”指令。 那么为什么当你运行没有“-u”或“–user”的映像时,mysqld是以“mysql”而不是“root”的名义运行的呢?

在基于Alpine Docker的Image下运行gitlab-ci.yml脚本时出错

所以,我需要使用Gitlab CI运行部署作业时运行ssh。 我使用https://hub.docker.com/r/nmfzone/ssh-client-light/ docker映像。 但是,我不能。 因为这个错误被抛出。 Checking out 32af65e1 as development… Skipping Git submodules setup Unknown cipher type 'if [ -x /usr/local/bin/bash ]; then exec /usr/local/bin/bash elif [ -x /usr/bin/bash ]; then exec /usr/bin/bash elif [ -x /bin/bash ]; then exec /bin/bash elif [ -x /usr/local/bin/sh ]; then exec /usr/local/bin/sh elif [ -x /usr/bin/sh ]; […]

在Docker文件中运行命令

当我在我的Docker文件中包含以下命令时,出现错误。 我正在尝试创build一个用于为Redis创build基础映像的docker文件,并且此命令有助于实现redis性能。 RUN echo 4096 > /writable-proc/sys/net/core/somaxconn 当我尝试构builddocker文件以创build映像时,出现的错误是: /bin/sh: 1: cannot create /writable-proc/sys/net/core/somaxconn: Directory nonexistent 任何build议如何我可以运行此命令? 我真的想在我的Dockerfile中运行以下命令: RUN echo 4096 > /writable-proc/sys/net/core/somaxconn RUN echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf RUN echo never > /sys/kernel/mm/transparent_hugepage/enabled 以下是我的Redis镜像的整个Docker文件: #Download base image ubuntu 16.04 FROM ubuntu:14.04 MAINTAINER George Chilumbu ENV HOME /root ENV DEBIAN_FRONTEND noninteractive #ENV /writable-proc/sys/net/core/somaxconn /proc:/writable-proc # […]

允许DockercachingRUN结果

我有一个Dockerfile中的这些命令: RUN apt-get -y update #1 RUN apt-get -y install sudo #2 RUN sudo apt-get -y update #3 RUN sudo apt-get -y upgrade #4 RUN sudo apt-get install -y sqlite3 libsqlite3-dev #5 看起来好像Docker不能caching第3行或第4行 有没有一种方法可以让Docker以某种方式caching这些结果? 它每隔一段时间就会讲一两分钟更新/升级,这会让我发疯。

习惯性的方式pipe理Docker中的持久数据存储

设置 我在本地机器上有10多个镜像,未来可能会有数TB的镜像,在这种情况下,它将被托pipe在aws上。 这些图像将被提供给一些网站,也是一个机器学习pipe道的input。 现在我正在开发我的本地机器。 源代码位于path/to/src ,数据位于path/to/images 。 我已经使用Dockerfilebuild立了一个Docker环境: FROM bamos/openface ADD . /face-off WORKDIR /face-off RUN pip install -r requirements.txt EXPOSE 5000 CMD [ "python", "app.py" ] 和docker-compose文件: version: '2' services: web: build: . image: face-off-web command: python app.py ports: – "5000:5000" volumes: – .:/face-off redis: image: "redis:alpine" 问题 由于我在Docker容器中开发,我需要访问path/to/images所有path/to/images 。 现在让我们保持简单,并说我使用预先指定的path读取图像到磁盘。 我认为我的select是: 一个显而易见的方法是将所有的图像移动到path/to/src ,但这对我来说似乎很脏。 […]

将R安装在Docker镜像中

如何在我的Docker镜像中安装R版本3.4.0。 我已经安装了Python使用: RUN yum -y install https://centos6.iuscommunity.org/ius-release.rpm \ && yum -y install python36u \ && yum -y install python36u-devel \ && yum -y install python36u-pip \ && yum -y install python36u-tkinter.x86_64 同样我需要安装R: 我已经在R中指定了以下文件: ENV R_BASE_VERSION 3.4.0 RUN Rscript -e 'install.packages("devtools",dependencies=TRUE)' \ &&Rscript -e 'install.packages("methods",dependencies=TRUE)' \ &&Rscript -e 'install.packages("jsonlite",dependencies=TRUE)' \ 请build议。我是docker工人 我想我需要做如下的事情: ENV R_BASE_VERSION 3.4.1 ## […]

如何避免Dockerfile中的大型二进制文件caching失效(Python_Onbuild)

我正在我的dockfile中下载1.6 GB二进制压缩文件,然后使用gunzip将其解压缩,从而导致存储3.6 GB文件。 我不想让它一直重复,因为它需要很长的时间。 它是一个静态文件,所以不应该每次使用Jenkins / docker将更改部署到服务器时下载。 但是,每次下载,我都会进行更改,然后运行Jenkins来部署它们。 这是我的docker文件: FROM python:2.7.13-onbuild RUN mkdir -p /usr/src/app WORKDIR /usr/src/app ARG DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install –assume-yes apt-utils RUN apt-get update && apt-get install -y curl RUN apt-get update && apt-get install -y unzip RUN curl -o – https://s3.amazonaws.com/dl4j-distribution/GoogleNews-vectors-negative300.bin.gz \ | gunzip > /usr/src/app/GoogleNews-vectors-negative300.bin 更新:我改变了dockfile为一个简单的如下所示: FROM […]

将本地目录装入Docker容器

我想用Docker做一个项目,用Python做一些数据处理。 假设我的代码位于一个名为code的目录下(包含多个用于分析不同步骤的python文件),并将数据存储在目录data 。 一个解决scheme就是像这样添加代码和数据: # Dockerfile FROM debian:stable-slim RUN apt-get update && apt-get install -y python-pip ADD code /code ADD data /data WORKDIR /code CMD python 然后我可以使用docker run -i someName pythonFile1.py从code运行其中的一个文件。 但是我在这里遇到的问题是我需要重新运行docker build . 每次我改变代码或数据。 所以我试图用docker-compose将这两个目录包含到卷中: #docker-compose.yml version: '2' services: myProject: build: . volumes: – ./code:/code – ./data:/data # Dockerfile FROM debian:stable-slim RUN apt-get update […]

在docker中只写入源文件的可写node_modules

我的webapp/Dockerfile看起来像这样: FROM project_base-container EXPOSE 9100 # … # Using copy instead of mount, since we need to write in sub-directories like node_modules etc. COPY . /usr/src/app/webapp CMD ["bash", "webapp/scripts/build_and_run.sh", "setup_deps_and_run_app"] 我想让应用程序能够读取源代码,并写入到像node_modules这样的子文件夹中,但是我不希望这些更改来自我的本地机器。 因此,我有两个select: 在node install更改–prefix='/tmp' ,并将src node install为ro 复制src,然后容器可以写任何想要的地方。 解决scheme1破坏浩劫,因为现在我必须复制/链接像package.json,index.html等所有文件的前缀位置。 解决scheme2就是我上面所做的。 当我使用COPY时,一切都很好。 但是现在的问题是,在源代码发生变化之后,我想每次更新映像中的源代码: sudo docker-compose down && sudo docker-compose up –build -d 但是COPY命令是由dockercaching的,即使在文件改变之后也不会被更新。 TL; DR:我有一个src文件夹'webapp',我想从主机挂载为readonly,但我的应用程序想写入子文件夹'webapp / […]

Docker重新构build时间

我们正在尝试为python应用程序创build一个Docker容器。 Dockerfile使用“pip install”来安装依赖关系。 Dockerfile看起来像 FROM ubuntu:latest RUN apt-get update -y RUN apt-get install -y git wget python3-pip RUN mkdir /app COPY . /app RUN pip3 install asn1crypto RUN pip3 install cffi==1.10.0 RUN pip3 install click==6.7 RUN pip3 install conda==4.3.16 RUN pip3 install Flask==0.12.2 RUN pip3 install Flask-SSLify==0.1.5 RUN pip3 install Flask-SSLify==0.1.5 RUN pip3 install flask-restful==0.3.6 […]