docker+daocloud+rails部署

本文将简述如何将docker放在daocloud里管理. 将在上一篇的基础上阐述.
daocloud官网注册登录账号之后,然后在用户中心代码托管里绑定git账号.

简单操作

1 首先创建一个项目.如psp, 然后选择git 的相关仓库.例如psp.(创建的项目需git仓库有Dockerfile文件.) 然后就可以创建了.

2 创建成功之后,可以找到设置,勾选成功构建后设置 latest 为镜像标签.
点击左侧的项目找到psp,右侧的查看详情下拉框下选择点击手动触发.可以选择触发的分支.我是选择了一个docker分支.点击确定之后便会执行.可以点击进去查看详情.一会便会构建成功.

3 执行成功之后,可以在镜像仓库里发现我们刚执行的结果.点击部署最新版本.填写应用名称选择主机,就可以进行下一步操作.

- 选择主机 ,需要在对应的服务器添加监控,才可以检测到并选择.
- 自有主机-集群管理-添加主机.可以发现有个命令,在服务器上添加就好了.

4 然后返回第3步,添加刚添加的主机.点击下一步.进去之后可以先不做配置,直接点击立即部署.这个时候会跳转到容器的日志部分.等待部署成功,即状态为运行中 这个时候我们就完成了一个简单的配置.

多个容器的操作

上面我们完成了一个简单的容器启动.不过一个应用下来,有很多容器需要启动配置.
  • 自有主机-应用
    在这里我们可以找到之前创建的一个容器.这个容器里有配置,有YAML.有日志,不过这个还只是一个单独的容器,我们需要应用其他的容易.
    注意, 容器内部的这个yml只是针对单个容器的配置,并不类似于docker-compose.yml, 我们来尝试在daocloud里配置dockercompose.

  • 自有主机-Stack

    1. 创建新Stack,输入名称,如: psp-compose,这里你自定义.
    2. 这里的yml配置值得注意,虽然stack的作用和docker-compose类似,但是语法方面还是有些细微的差别.
      例如,我们直接在docker-compose.yml里可以对Dockerfile进行build或者指定Dockerfile进行build.但是这里就不行,这里build需要替换成image.下面是我的stack的例子.
version: '2'
services:
  app:
    image: daocloud.io/xiaohesong/psp_staging:latest #这个是你构建的镜像.
    command: /bin/bash start_up.sh
    privileged: false
    restart: always
    links:
    - postgres
    - redis
    ports:
    - '3000'
    environment:
    - VIRTUAL_HOST=ip #这个是nginx-proxy镜像的一个方法.为你配置nginx.
    -SECRET_KEY_BASE= xxxxxxxxx
    volumes:
    - /rails/data/log:/home/issue/www/psp/log
  web:
    image: daocloud.io/daocloud/nginx-proxy
    ports:
    - 80:80
    links:
    - app
    volumes:
    - /var/run/docker.sock:/tmp/docker.sock:ro
  postgres:
    image: postgres:9.4
    ports:
    - '5432'
    volumes:
    - /rails/main-database:/var/lib/postgresql/data
  redis:
    image: redis:3.0.5
    ports:
    - 6379:6379
    volumes:
    - /rails/cache-database:/var/lib/redis/data
  • 这里的nginx镜像是nginx-proxy. 他提供了一个VIRTUAL_HOST变量,会根据指定这个变量所在的容器去配置nginx的配置信息.如果不用这个,自己又需要配置nginx的信息,例如上一篇文章nginx,需要指定相关的配置,去指定Dockerfile-nginx. 这样可能就需要你去创建一个镜像.类似psp,自己构建一个镜像到daocloud,然后再指定构造的镜像.

  • 创建Stack的时候,把这个写在yml文件里(因项目差异,这里有些需要你自己去更改.),然后选择主机创建部署,会跳转到日志,等待完成.
    完成之后会发现,在自有主机-应用里创建了我们在Stack里加的相关容器.

dockerdaocloud的大体流程类似这样,具体的细节还是需要去完善.

番外: 比较坑的地方
  • 服务器
    之前阿里活动,9块钱半年的服务器搞了一台.发现配置好了站点之后,ip访问不了. 服务器上访问是ok的.

解决方案:
进入阿里云控制台 –> 云服务器 ECS –> 网络和安全 –> 安全组 –> 配置规则 –> 快速创建规则
在里面选择HTTP(80), 授权对象不清楚的就直接0.0.0.0/0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值