Tag: dockerfile

使用Docker的多个WordPress网站与一个共享数据库

我想用docker运行一个共享数据库的多个WordPress网站。 是否可以指定一个数据库,并设置一个适当的卷到一个特定的SQL文件,以初始化每个容器在其docker-compose.yml文件中的WordPress? 例如,我有一个共享容器siteA和docker-compose.yml三个docker-compose.yml文件。 当我在./shared运行./shared docker-compose up ,会为两个站点(example_a和example_b)创build两个DB。 当我在./siteA运行./siteA docker-compose up ,我想将当前数据库更改为example_a ,并使用./siteA/mysql/setup.sql中的sql进行一定数量的数据初始化该站点。 siteB也一样。 我知道我可以在- WORDPRESS_DB_NAME: example_a – ./db-data/mysql.dump.sql:/docker-entrypoint-initdb.d/install_wordpress.sql中的mysql部分中指定数据库和卷,如- WORDPRESS_DB_NAME: example_a和- ./db-data/mysql.dump.sql:/docker-entrypoint-initdb.d/install_wordpress.sql ,但是我只有一个共享的mysql,不能为每个站点指定数据库和卷。 我有多个docker-compose.yml文件看起来像下面。 ./shared/docker-compose.yml version: "2" services: proxy: image: jwilder/nginx-proxy privileged: true container_name: proxy ports: – 80:80 – 443:443 volumes: – /var/run/docker.sock:/tmp/docker.sock:ro – ./certs:/etc/nginx/certs:ro restart: always logging: options: max-size: 5m max-file: "10" mysql: image: mysql:5.7 […]

Docker Python脚本找不到文件

我已经成功构build了一个Docker容器,并将我的应用程序的文件复制到Dockerfile的容器中。 不过,我正在尝试执行一个引用input文件(在Docker构build过程中被复制到容器中)的Python脚本。 我似乎无法弄清楚为什么我的脚本告诉我,它无法findinput文件。 我包括我用来构build下面的容器的Dockerfile以及正在查找无法find的input文件的Python脚本的相关部分。 Dockerfile: FROM alpine:latest RUN mkdir myapplication COPY . /myapplication RUN apk add –update \ python \ py2-pip && \ adduser -D aws WORKDIR /home/aws RUN mkdir aws && \ pip install –upgrade pip && \ pip install awscli && \ pip install -q –upgrade pip && \ pip install -q –upgrade […]

Docker上的Dockerfile传递环境构build

我写了一个使用两个参数的Dockerfile : FROM jessie MAINTAINER Zeinab Abbasimazar #Build Arguments ARG REP_USER ARG REP_PASS # Build RUN echo 'REP_USER:'$REP_USER', REP_PASS:'$REP_PASS 我写了一个docker-compose.yml来构build: version: "2" services: ui: build: context: . dockerfile: Dockerfile args: REP_USER: $REP_USER REP_PASS: $REP_PASS 我不想直接在撰写文件中定义这些参数,所以我试图在docker撰写构build时发送它们: REP_USER=myusername REP_PASS=mypassword docker-compose build 哪个没用 我改变了我的Dockerfile使用这些参数作为环境variables; 所以我删除了ARG行: FROM jessie MAINTAINER Zeinab Abbasimazar # Build RUN echo 'REP_USER:'$REP_USER', REP_PASS:'$REP_PASS 和docker-compose.yml : […]

ARG或ENV,在这种情况下使用哪一个?

这可能是一个微不足道的问题,但是为ARG和ENV阅读文档并没有把事情弄清楚。 我正在构build一个PHP-FPM容器,我想给用户启用/禁用一些扩展function。 如果可以在Dockerfile中添加条件并在构build命令上传递标志,可能会很好,但是AFAIK不受支持。 就我而言,我个人的方法是在容器启动时运行一个小脚本,如下所示: #!/bin/sh set -e RESTART="false" # This script will be placed in /config/init/ and run when container starts. if [ "$INSTALL_XDEBUG" == "true" ]; then printf "\nInstalling Xdebug …\n" yum install -y php71-php-pecl-xdebug RESTART="true" fi … if [ "$RESTART" == "true" ]; then printf "\nRestarting php-fpm …\n" supervisorctl restart php-fpm fi exec […]

Docker中的共享文件夹。 用Windows。 不仅是“C / user /”path

我是Docker的新手,我来自stream浪汉。 我在我的“D:/ Works / something / DockerFirstTime”文件夹中使用Docker(1.9.1)。 现在我创build机器 docker-machine create first 和简单的Dockerfile : FROM ruby:2.2-onbuild 和简单的Gemfile : source 'https://rubygems.org' gem 'rails' 现在用这个命令我想在Dockerfile的同一个硬盘里使用像Vagrant这样的共享文件夹: docker run -it -v //d/Works/something/DockerFirstTime:/usr/src/app -w /usr/src/app ruby:2.2 bundle install 但它不起作用。 这个怎么做? 我知道Docker只共享/ c / User /文件夹 ,对吗? 我怎样才能使用该文件夹的文件,并修改我的文件在Windows中的编辑器,然后重新启动服务器,如在一台PC上的普通shell或像stream浪汉?

将parameter passing给父Dockerfile

有什么办法可以使用父代码镜像中定义的参数吗? 给定下面的孩子Dockerfile FROM jenkins USER ${user} RUN echo "${user}" 从父Dockerfile摘录 FROM openjdk:8-jdk ARG user=jenkins ARG group=jenkins ARG uid=1000 ARG gid=1000

WordPress Docker不会增加上传限制

我正在尝试将Dockerized WordPress实例的上传限制增加到150M。 [filename] exceeds the maximum upload size for this site. 我创build了一个uploads.ini文件并通过卷将其附加到实例。 但是我仍然无法让Wordpress媒体上传者增加它的限制。 docker工人,compose.yml: version: '2' services: db: image: mysql:5.7 volumes: – db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: password1 MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: password1 wordpress: depends_on: – db build: ./wordpress ports: – "8085:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_PASSWORD: password1 volumes: – ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini volumes: db_data: […]

MongoDB连接的Bluemix IBM Container失败

我一直在试图从Dockerfile中准备一个包含在Docker容器中的mongodb的图片: # Dockerizing MongoDB: Dockerfile for building MongoDB images # Based on ubuntu:latest, installs MongoDB following the instructions from: # http://d…content-available-to-author-only…b.org/manual/tutorial/install-mongodb-on-ubuntu/ # Format: FROM repository[:version] FROM ubuntu:latest # Format: MAINTAINER Name <email@addr.ess> MAINTAINER Name <my@gmail.com> # Installation: # Import MongoDB public GPG key AND create a MongoDB list file RUN apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv […]

Docker-compose:总是接收无法find指定的Dockerfile

我有一个以下的项目结构: WebApp — docker-compose.yml — Dockerfile — docker — docker-gc –Dockerfile docker/docker-gc是我在使用这个命令之前创build的一个git子模块: git submodule add git@github.com:spotify/docker-gc.git docker/docker-gc 在docker docker-gc compc中,我尝试在docker docker-gc运行Dockerfile。 这是我的服务: gc: container_name: docker-gc build: ./docker/docker-gc dockerfile: ./docker/docker-gc/Dockerfile volumes: – /var/run/docker.sock:/var/run/docker.sock – /etc:/etc 但我总是收到错误: 找不到指定的Dockerfile ./docker/docker-gc/Dockerfile 我已经尝试了许多方式,如docker/docker-gc/Dockerfile /docker/docker-gc/Dockerfile docker/docker-gc/Dockerfile或/docker/docker-gc/Dockerfile没有结果。 这个问题涉及到符号链接(由于git子模块性质)。 请告诉我如何解决这个问题。

我们可以通过cmd行传递ENVvariables,同时通过dockerfile构build一个docker镜像吗?

我正在处理一个任务,涉及使用Dockerfile构build以centOs为基础的docker映像 。 dockerfile中的一个步骤需要设置http_proxy和https_proxy ENVvariables,以便在代理之后工作。 由于这个Dockerfile将被具有不同代理的多个团队使用,我想避免为每个团队编辑Dockerfile。 相反,我正在寻找一个解决scheme,允许我在构build时传递ENVvariables,例如, sudo docker build -e http_proxy = somevalue。 我不确定是否已经有一个选项可以提供这个function。 我错过了什么吗?