Tag: 木偶

如何使用Docker,Puppet和Vagrant开发LAMP Web应用程序?

在黑暗时代,我通常开发的LAMP Web应用程序是在我的机器上进行本地testing。 PHP(在我的情况下),数据库和Web服务器都是本地安装的。 服务器是使用标准安装的Apache和MySQL进行安装的,而且我有多个虚拟主机用于Web应用程序的不同部分。 当我对我在本地机器上得到的结果感到满意时,我会login到服务器,然后在暂存环境中进行git pull 。 假设服务器上的所有东西都和我的机器一样,我也会为生产做同样的事情。 新的开始… 所以现在我从头开始一个全新的Web应用程序,我想要“正确的方式”。 我已经读了Docker,Vagrant和Puppet(还有厨师,尽pipe我个人更喜欢Puppet的依赖系统而不是Chef的迭代过程)。 尽pipe我所做的所有研究,似乎仍然有几个问题,我似乎无法find答案: 是否应为Web服务器(如Apache),数据库服务器(如MySQL)和Web应用程序的每个部分分别安装Docker容器? 当我谈论Web应用程序的某些部分时,我指的是mysite.com , controlpanel.mysite.com等等。这些“部分”将共享相同的数据库。 由于Docker似乎为Web和数据库服务器提供了现成的容器,所以至less应该将这些东西放在单独的容器中。 我的networking应用程序的不同部分应该在不同的容器中吗? Docker容器似乎被devise成可replace的,而不是我必须更新里面的软件。 他们写的数据怎么样,我不想丢失? 数据库服务器将pipe理与我的数据库内容相关的文件(我将要备份)。 Web服务器将创build日志,我的Web应用程序将pipe理各种文件和caching等。所有这些文件都需要写在应用程序的容器之外(因为我可能在更新时replace它们),所以它们在哪里? 直接进入主机的文件系统? 或成为一个单独的“Docker卷”? 如果他们进入Docker卷,我应该使用一个单独的卷为数据库,Web服务器,应用程序等? 我是否仍然可以像现在一样使用本地机器上的SFTP轻松访问内容? 我不想在这里失去任何便利! 使用Puppet创build和pipe理开发服务器和生产服务器的Docker容器是不是一个好主意? 看来Puppet支持直接pipe理Docker容器,所以这似乎是从头开始轻松设置服务器或生产环境(使用Vagrant)的一个相当好的方法。 希望我已经提出了一些相关的问题; 为了开发和生产类似LAMP的networking应用程序,获得一些适当的“最佳实践”将是非常好的,只是似乎没有太多的发现!

如何将项目添加到.dockerignore?

我无法find一个.dockerignore文件应该是什么样子的很多例子。 使用puppet在Docker容器上安装一些包会导致图像从600MB扩展到3GB。 我试图使用.dockerignore文件来保持.dockerignore的大小 $ cat Dockerfile FROM centos:centos6 #Work around selinux problem on cent images RUN yum install -y –enablerepo=centosplus libselinux-devel RUN yum install -y wget git tar openssh-server; yum -y clean all Add Puppetfile / RUN librarian-puppet install RUN puppet apply –modulepath=/modules -e "class { 'buildslave': jenkins_slave => true,}" RUN librarian-puppet clean 如果我运行docker images […]

我怎样才能停止和删除启动docker容器与重新启动总是选项?

我总是运行一些容器,使用–restart选项。 它工作的很好,很好,我现在有困难,现在停止这些容器:) 我试过了 : sudo docker stop container && sudo docker rm -f container 但容器仍然重新启动。 docker文档解释了重新启动策略,但是我没有find任何解决此问题的方法。

stream浪者与木偶安装docker工人

我正在试图安装docker在trusty64stream浪汉形象: Vagrantfile # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "ubuntu/trusty64" config.vm.hostname = "apps.local" config.vm.provision "shell", inline: <<-SHELL puppet module install garethr-docker SHELL config.vm.provision "puppet" end 舱单/ default.pp include 'docker' docker::image { 'ubuntu': image_tag => 'trusty' } 而且vagrant up的输出也达到vagrant up : ==> default: Running provisioner: shell… default: Running: […]

要求apt :: source作为依赖项会产生语法错误

我需要在安装docker之前将docker源代码列表添加到apt。 我有 apt::source { 'debian-jessie': comment => 'This is the docker Debian jessie mirror', location => 'http://apt.dockerproject.org/repo', release => 'debian-jessie', repos => 'main', key_content => '58118E89F3A912897C070ADBF76221572C52609D', key_server => 'keyserver.ubuntu.com', ensure => present, include_src => false, include_deb => true, } 哪个工作,也 package {'docker-engine': ensure => present, before => Class['docker'], } 这只在第二次运行后才起作用(我使用vagrant provision ,但这与问题无关)。 我想通过指示puppet在docker-engine之前执行apt::source来在第一次configuration中完成整个工作,但是在require中添加它并不是一个有效的语法: package {'docker-engine': […]