Tag: dockerfile

E:无法find软件包redis-server

我正在使用Ubuntu机器(14.04.1)。 我已经安装了docker守护进程(1.12.3和版本:1.6.3)。 我写了一个dockerfile,它将下载redis数据库。 但它是抛出我以下错误: E: Unable to locate package redis-server 当redis服务器不工作时,我也尝试了redis。 它再次抛出相同的错误。 E: Unable to locate package redis Dockerfile的内容: FROM ubuntu:14.04 RUN apt-get update && apt-get install -y redis-server EXPOSE 6379 我能够运行apt-get update,但无法安装redis-server或redis。 Docker的registry是docker hub。 我可以在本地( sudo apt-get install -y redis-server )下载redis,但在docker之外,我无法使用docker。

更新Docker容器的Ruby bin文件夹的正确方法是什么?

我一直在转换一个现有的Ruby on Rails应用程序在docker容器中开发。 我不明白在哪里最好把rake rails:update:bin命令。 我试图把它作为docker文件的最后一行,但容器将无法正常启动。 我可以让容器启动的唯一方法是在图像构build之外构buildbin,以便使用ADD命令来拉取bin文件夹。 是否有可能创build一个dockerfile来完成所有的事情? Docker文件看起来像这样 FROM ruby:2.2 RUN apt-get update && apt-get install -y \ build-essential \ libpq-dev \ nodejs RUN mkdir /MyApp WORKDIR /MyApp ADD Gemfile /MyApp/Gemfile ADD Gemfile.lock /MyApp/Gemfile.lock RUN bundle install ADD . /MyApp 我想添加下面一行到最后。 RUN rake rails:update:bin 当我尝试包括rake命令时,我正在重buildMyApp文件夹中没有bin文件夹的图像。 当我离开rake命令时,我正在用bin文件夹重build图像。 而且我知道我真的重build图像,因为我重build它们之前删除caching的版本。

在启动时使用静态数据进行Docker集成testing

我一直在这个问题上挣扎了一会儿。 我想用一组特定的数据做一个性能testing。 为了实现这一点,我使用Docker-compose,并导出了几个.sql文件。 当我第一次使用docker-compose build和docker-compose up构build并运行容器时, docker-compose up数据集是好的。 然后我运行我的testing(也插入)数据。 运行我的testing后,我想再次执行它,所以我重新启动容器使用docker-compose up 。 但这一次,由于某种原因,我不明白,上次插入的数据(通过我的testing)仍然存在。 我现在得到不同的行为。 目前我有以下Dockerfile: FROM mysql:5.7 ENV MYSQL_DATABASE dev_munisense1\ MYSQL_ROOT_PASSWORD pass EXPOSE 3306 ADD docker/data/ /docker-entrypoint-initdb.d/ 因为我读过mysql Docker镜像运行/docker-entrypoint-initdb.d/所有/docker-entrypoint-initdb.d/ 。 第一次正常工作。 我也尝试了这些post的build议: 如何在Docker容器中迁移mysql数据目录? http://txt.fliglio.com/2013/11/creating-a-mysql-docker-container/ 如何在构build时创build已填充的MySQL Docker镜像 如何使用填充数据库进行自动化testing的docker图像? 和几个相同的其他职位。 他们目前似乎没有工作。 每次启动容器时,如何确保数据集完全相同? 而不必每次重build图像(这需要很长的时间,因为一个大的数据集)。 提前致谢 编辑: 我也试着用不同的参数来运行容器,比如: docker-compose up –force-recreate –build mysql但是这没有成功。 容器重build并重新启动,但数据库仍受我的testing影响。 目前解决我的问题的唯一办法是删除整个容器和图像。

Dockerfile:设置Bitbucket的SSH密钥

我有一些像这样的内容的自定义Dockerfile: RUN mkdir -p ~/.ssh RUN mv smart_key ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa RUN ssh-keyscan -t rsa bitbucket.org > ~/.ssh/known_hosts #RUN echo " IdentityFile smart_key" >> ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa && ssh-keyscan -t rsa bitbucket.org > ~/.ssh/known_hosts RUN ssh -T git@bitbucket.org 我在这一行有个问题: RUN mv smart_key ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa 它失败,并出现错误: mv: cannot stat […]

Airflow Docker部署:在start_date + schedule_interval之后,任务未运行

我是Airflow的新手。 我想我已经阅读了关于调度的Airflow文档中的所有文章,但我仍然无法让我的DAG在start_date + schedule_interval(即没有任务实例)之后运行。 我正在使用docker。 我想知道我缺less一个调度Dags的命令,尽pipe在我使用教程代码时并不是这样。 这是我的dockerfile。 FROM ubuntu:latest FROM python:3 RUN apt-get update -y RUN apt-get install -y python-pip python-dev apt-utils build-essential RUN pip install –upgrade pip # Installs these and a few others # mysqlclient==1.3.10 # airflow==1.7.1.3 COPY dependencies /dependencies RUN pip install -r dependencies/requirements_loader.txt COPY airflow /root/airflow # Load other dependencies # […]

我如何上传数据到docker(容器)?

我想上传一个.txt文件到一个容器,以便我可以复制该文件将其粘贴到不同的容器,但我是新的使用泊坞窗和手册太复杂了解。 有人能帮我吗? 我正在使用Windows 10电脑。 谢谢! 莎拉

Docker-Compose:如何将卷从主机映射到容器?

问题: 我想通过使用docker-compose的特定容器从docker主机共享一个文件夹。 运行MongoDB的容器应将其数据文件放置在/ var / lib / mongodb中,但是该文件夹应该挂载到hosts文件夹/ var / lib / mongodb。 但是它仍然是容器中的一个本地目录,而不是主机的共享目录。 有时也会以下面的警告结束: 警告:服务“mongodb”使用前一个容器中的“/ var / lib / mongodb”卷。 主机映射“name_dbvolume”不起作用。 删除现有容器(使用docker-compose rm mongodb )以使用主机卷映射。 泊坞窗,compose.yml version: '2' services: loopback: build: . expose: – "80" – "443" – "28015" – "29015" ports: – 3000:3000 links: – mongodb environment: VIRTUAL_HOST: api.xxxxxx.com VIRTUAL_PORT: 3000 LETSENCRYPT_EMAIL: yyyyyy@xxxxxxx.com […]

Docker PHP5.6调用未定义的函数bindtextdomain()

问题: 我有一个Docker与一个n​​ginx服务和一个PHP服务组成。 当我尝试打开我的开发项目页面时,遇到此错误: 致命错误:调用第16行的/usr/share/nginx/html/some_project/some_path/Bootstrap.php中未定义的函数bindtextdomain() 我看到这是一个缺less依赖的问题: php-gettext 。 我的configuration: 在我的Dockerfile中,我尝试安装它: FROM php:5.6.30-fpm MAINTAINER DarckCrystale "xxx@xxx.xx" # Here I try to install the php-gettext extension # but it does not work RUN apt-get update && apt-get install -y php-gettext gettext # Setup PHP configuration ADD php.ini /usr/local/etc/php/conf.d/php.ini 在我的php.ini中,我加载它: extension=gettext.so 其他信息: 当我在我的容器中运行 php -i | grep extension_dir 我有这个消息显示: […]

如果主机卷没有写入权限,docker运行中的configuration或选项将失败

在docker run中是否有configuration选项,这样如果主机卷没有写权限,它就无法运行,就像一个快速失败一样。 例如: docker run -v /media/videos:/mnt/av -v /var/log:/var/log -ti –net=host video_service 在上面,我将主机上的/ media / videos映射到container / mnt / av 。 基本上我有一个容器中的NGINX RTMP服务器将video写到/ mnt / av。 但是,如果在主机/媒体/video没有写权限失败,它不会保存任何video。 所以我正在寻找任何选项,所以只有在主机卷上没有写权限的情况下,docker才会在启动(运行)时失败,而不是成功启动,但后来知道这个问题。 或者,如果我可以强制docker在启动过程中获得主机path上的写权限。

如何使用docker maven插件将文件从绝对path复制到docker镜像

我正在用Java编写微服务。 最后,我运行maven build来生成基于目录[project-root] / docker中的Dockerfile的Docker镜像。 有些文件需要复制到Docker镜像中。 因此,我的Dockerfile中有以下几行: # HDFS base image FROM mdouchement/hdfs COPY ${workdir.name} /${workdir.name} COPY ${resource.dir} /etc/hadoop variablesworkdir.name和resource.dir在pom.xml中定义 <properties> <workdir.name>javarun</workdir.name> <resource.dir>${project.baseUri}/src/main/resources</resource.dir> </properties> 当第一个复制命令使用相当于target/docker/javarun相对path时,第二个命令使用绝对path。 原来第一个COPY作品,而我得到第二个COPY错误说目录没有find: [INFO] Building image docker.repo.lgc.com/distarch/com.lgc.dist.core.msp.service.hdfs Step 1/3 : FROM mdouchement/hdfs —> c95344e8749d Step 2/3 : COPY javarun /javarun —> e2e8cb5bc21f Removing intermediate container f49da68fe77e Step 3/3 : COPY file:/C:/Users/H184870/Workspace/core/com.lgc.dist.core.msp.service.hdfs//src/main/resources /etc/hadoop […]