Tag:

Docker-compose服务以–service-ports标志为默认值

tl; dr:有没有办法在编写文件中指定–service-ports标志作为默认值? 通过我的rails应用程序,我通常有一个这样的command:在我的web服务中: command: bash -c "rake db:create && rake db:migrate && rake db:seed && RAILS_ENV=development puma" 所以,用docker-compose起来,我都设置好了,但是如果我想用docker-compose run –service-ports web puma进行debugging,我必须停止我的web服务并docker-compose run –service-ports web puma 对于我的开发组合文件,我希望Web服务可以使用–service-ports标志作为默认运行。 无论如何要在撰写文件中指定这个,这样我就可以在一个命令中准备好一切了吗? (docker – 组成)

如何解决Docker for Mac中Docker.qcow2的大小限制?

我有一个大的(100GB +)数据库,我试图用官方postgres图像运行。 我无法将数据存储在~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2卷中,因为Docker for Mac中的~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2文件的大小限制为约60gb。 我很犹豫要把一个主机目录挂载成一个卷,因为挂载的主机目录卷的文件访问速度比常规卷慢得多。 这些是一些有用的链接,在这些问题上有更多的细节: 这讨论了Docker.qcow2文件的大小限制 这也讨论了Docker.qcow2文件的大小限制 这讨论了挂载的主机目录卷速问题 这给了一个很好的描述如何用一个可以变大的文件replaceDocker.qcow2文件 这将讨论Docker.qcow2文件如何在内容被删除时不收缩(这不是直接相关的,但会使问题进一步复杂化) 你们都吃速度损失,并挂载主机目录? 你是否手动创build一个qcow2文件,可以使用qemu进行扩展(如果你这样做,你需要在升级之间维护这个文件)? 你有其他的办法来解决这个问题吗?

无法运行rake db:在Docker-compose中的Dockerfile中创build

我有一个像本教程中的Dockerfile和Dockerfile docker-compose.yml ,除了我从现有的应用程序开始。 我docker-compose.yml如下所示: db: image: postgres ports: – "5432" web: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: – .:/myapp ports: – "3030:3030" links: – db 和Dockerfile : FROM ruby:2.1.4 RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs RUN mkdir /myapp WORKDIR /myapp ADD Gemfile /myapp/Gemfile RUN […]

Docker容器中的Rails应用程序不会在开发中重新加载

我遵循这个docker – 撰写教程如何启动一个rails应用程序。 它运行完美,但是当我更改控制器时,应用程序不会重新加载。 有什么可以丢失?

在Docker中使用nginx服务Rails的预编译资产

目前我正在使用docker设置我的应用程序。 我有一个最小的应用程序,1个控制器。 你可以通过运行这些来获得我的设置: rails new app –database=sqlite –skip-bundle cd app rails generate controller –skip-routes Home index echo "Rails.application.routes.draw { root 'home#index' }" > config/routes.rb echo "gem 'foreman'" >> Gemfile echo "web: rails server -b 0.0.0.0" > Procfile echo "port: 3000" > .foreman 我有以下设置: Dockerfile : FROM ruby:2.3 # Install dependencies RUN apt-get update && apt-get […]

通过docker-compose生成的文件运行web rails g控制器没有权限编辑

我正在使用docker-compose为开发人员提供环境。 docker-compose build命令运行正常,运行在0.0.0.0:3000 docker-compose up命令的0.0.0.0:3000上。 当我试图运行命令docker-compose run web rails g controller生成一个操作的控制器,比生成的文件,但没有权限在主机上编辑。 Dockerfile FROM ubuntu:14.04 FROM ruby:2.2.1 # Run updates RUN apt-get update -qq && apt-get install -y build-essential libpq-dev # Set up working directory RUN mkdir /xyz/ WORKDIR /xyz/ # Set up gems ADD Gemfile /xyz/Gemfile ADD Gemfile.lock /xyz/Gemfile.lock RUN bundle install # Finally, add […]

Docker – docker-compose'version'没有任何configuration选项

我是Docker世界的新手,我花了我的假期来学习这个docker工(然而它比Vagrant难得多)。 所以我使用Ubuntu 16.04,我成功地安装了docker和docker-compose。 我阅读本教程: 快速入门:Docker的撰写和铁路但这不工作…也许教程不好。 我有这个docker-compose.yml: db: image: postgres web: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: – .:/www/html ports: – "3000:3000" depends_on: – db 我总是得到这个错误: $ docker-compose run web rails new . –force –database=postgresql –skip-bundle ERROR: Validation failed in file './docker-compose.yml', reason(s): Unsupported config option for 'web' service: 'depends_on' […]

使用Docker我得到的错误:“SQLSTATE 没有这样的文件或目录”

我正在使用Docker创build一个容器来testing我的Mac上构build于PHP和MySQL上的Web应用程序。 我的PHP应用程序是使用MVC和路由的无脂框架构build的。 我有两个Dockerfiles,一个用于MySQL,一个用于PHP。 我已经成功地使用了testing的Docker应用程序,所以我相信我的映像安装正确。 错误的主要部分: Internal Server Error SQLSTATE[HY000] [2002] No such file or directory [fatfree/lib/DB/SQL.php:466] PDO->__construct('mysql:host=127.0.0.1;port=3306;dbname=robohome','root','password',array(1002=>'SET NAMES utf8;')) [fatfree/app/Controllers/Controller.php:24] DB\SQL->__construct('mysql:host=127.0.0.1;port=3306;dbname=robohome','root','password') 请注意,如果我连接使用127.0.0.1而不是localhost我得到一个稍微不同的错误,说: SQLSTATE[HY000] [2002] Connection refused 我的PHP Dockerfile: FROM php:5.6-apache RUN docker-php-ext-install mysqli pdo pdo_mysql RUN a2enmod rewrite 我的MySQL Dockerfile: FROM mysql:5.7 ENV MYSQL_ROOT_PASSWORD password ENV MYSQL_DATABASE robohome COPY ./schema.sql /docker-entrypoint-initdb.d/ 我的Controller.php文件错误提到第24行: <?php namespace Controllers; […]

减less自定义Docker镜像大小的最佳方法

我已经build立了一个基于官方PHP FPM图像 php:7.0.14-fpm-alpine的定制Docker镜像 我想保持图像的大小,所以我select了正式的alpine PHP-FPM版本,因为它的重量只有27 MB 。 我通过Dockerfile只安装了几个额外的软件包,图像的大小增加到277.5 MB 。 这是我的Dockerfile: FROM php:7.0.14-fpm-alpine COPY ./config/www-pool.conf /usr/local/etc/php-fpm.d/www.conf COPY ./scripts/download-composer.sh /root/download-composer.sh WORKDIR /root RUN chmod +x download-composer.sh \ && ./download-composer.sh \ && mv composer.phar /usr/local/bin/composer RUN ["mkdir", "/var/log/php-fpm"] RUN apk –update add \ autoconf g++ make \ openssl-dev \ libxml2-dev RUN pecl install \ xdebug \ mongodb […]

在(php-fpm)docker容器中找不到mysqli

我在我的nginx web服务器使用的docker容器中运行php:7-fpm 。 除了当我试图在我的PHP代码中实例化一个mysqli连接时,一切都很好。 我收到以下错误: "NOTICE: PHP message: PHP Fatal error: Uncaught Error: Class 'Listener\mysqli' not found in index.php:104 这里是我的Dockerfile用于构build镜像,我明确地安装了mysqli扩展: FROM php:7-fpm RUN docker-php-ext-install mysqli 它似乎是安装在下面的phpinfo()输出。 我需要configuration或启用它?