小编Jen*_*gar的帖子

如何让docker-compose使用来自存储库的最新图像

我不知道我做错了什么,但我根本无法docker-compose up使用我们注册表中的最新图像,而无需先完全从系统中删除旧容器.看起来compose正在使用之前启动的图像,即使docker-compose pull已经获取了一个较新的图像.

我看了如何让docker-compose始终从新图像重新创建容器?这似乎与我的问题类似,但是所提供的解决方案都没有对我有用,因为我正在寻找可以在生产服务器上使用的解决方案,我不想在启动它们之前删除所有容器再次(可能的数据丢失?).我想仅仅为了检测已更改图像的新版本,拉出它们然后用这些新图像重新启动服务.

我为此创建了一个简单的测试项目,其中唯一的目标是在每个新构建上增加一个版本nr.如果我浏览到创建的nginx服务器(这在本地按预期工作),则显示版本nr.

docker版本:1.11.2 docker-compose版本:1.7.1 OS:使用docker-toolbox在CentOS 7和OS X 10.10上测试

我的docker-compose.yml:

version: '2'
services:
  application:
    image: ourprivate.docker.reg:5000/ourcompany/buildchaintest:0.1.8-dev
    volumes:
      - /var/www/html
    tty: true

  nginx:
    build: nginx
    ports:
      - "80:80"
    volumes_from:
      - application
    volumes:
      - ./logs/nginx/:/var/log/nginx
  php:
    container_name: buildchaintest_php_1
    build: php-fpm
    expose:
      - "9000"
    volumes_from:
      - application
    volumes:
      - ./logs/php-fpm/:/var/www/logs
Run Code Online (Sandbox Code Playgroud)

在我们的jenkins服务器上,我运行以下命令来构建和标记图像

cd $WORKSPACE && PROJECT_VERSION=$(cat VERSION)-dev
/usr/local/bin/docker-compose rm -f
/usr/local/bin/docker-compose build
docker tag ourprivate.docker.reg:5000/ourcompany/buildchaintest ourprivate.docker.reg:5000/ourcompany/buildchaintest:$PROJECT_VERSION
docker push ourprivate.docker.reg:5000/ourcompany/buildchaintest
Run Code Online (Sandbox Code Playgroud)

这似乎正在做它应该做的事情,因为每次构建完成并且版本nr被碰撞时我在我们的存储库中得到一个新的版本标记.

如果我现在跑

docker-compose pull && docker-compose -f docker-compose.yml up …
Run Code Online (Sandbox Code Playgroud)

build-process docker docker-compose

48
推荐指数
8
解决办法
5万
查看次数

如何保持带有标题的表,但允许在XSL-FO中使用FOP在表体内部进行分页

我正在使用Apache FOP和XSL-FO样式表生成PDF.在PDF中,我输出属于表的标题(html equiv h1),因此应始终保持在一起.但是,我的表格也可能包含很多数据,因此它们不一定适合一页.

所需的结果是一个规则集,允许标题与表保持一致,如果可能的话,在一个页面上都适合,但如果表数据太长而不适合一页,则会插入分页符表格同时仍将标题元素保留在与表格开头相同的页面上.

我现在的解决方案确实将标题和表保持在一起,但如果所有内容都不适合一个页面,我会得到表数据的内容溢出错误.我希望页面中断内部:避免设置在表元素上会对此有所帮助,但显然不是......建议?

示例xsl(为了便于阅读而缩短):

<!-- add test table with header that should stay on same page -->
<fo:block font-size="20pt" font-weight="bold">Table header</fo:block>

<fo:table keep-with-previous.within-page="always"
      page-break-inside="avoid" 
      table-layout="fixed" border-width="1mm" border-style="solid">
  <fo:table-column column-width="auto" />
  <fo:table-column column-width="30mm" />

  <fo:table-header text-align="center" background-color="silver">
    <fo:table-row>
      <fo:table-cell padding="1mm" border-width="1mm" border-style="solid">
    <fo:block>First name</fo:block>
      </fo:table-cell>
      <fo:table-cell padding="1mm" border-width="1mm" border-style="solid">
    <fo:block>Last name</fo:block>
      </fo:table-cell>
    </fo:table-row>
  </fo:table-header>
  <fo:table-body>
    <!-- the table-rows can be repeated N times, spanning several pages -->
    <fo:table-row >
      <fo:table-cell padding="1mm" border-width="1mm" border-style="solid">
    <fo:block>ab</fo:block>
      </fo:table-cell>
      <fo:table-cell padding="1mm" border-width="1mm" …
Run Code Online (Sandbox Code Playgroud)

xsl-fo apache-fop

11
推荐指数
1
解决办法
2万
查看次数

FOSUserBundle登录时的区域设置开关

我正在尝试让区域设置切换到我的应用程序的登录屏幕.为了做到这一点,我的登录页面上的链接指向site.com/(默认语言环境)和site.com/en(我支持的第二个语言环境).一旦我登录,切换就像一个魅力.但是,如果我尚未通过身份验证,则登录将始终返回到默认语言环境.我的理解是,如果我使用来自FOSUserBundle的命名路由,那么它应该能够自动处理语言环境,但我不能让它工作.

我的app/config/security.yml

security:
    encoders:
        FOS\UserBundle\Model\UserInterface: sha512

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username

    firewalls:
        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
                csrf_provider: form.csrf_provider
                login_path: fos_user_security_login
                check_path: fos_user_security_check
            logout:       true
            anonymous:    true

    access_control:
        - { path: ^/_wdt, roles: IS_AUTHENTICATED_ANONYMOUSLY }         # allow wdt for debugging
        - { path: ^/_profiler/, role: IS_AUTHENTICATED_ANONYMOUSLY }    # allow profiler for debugging
        - { path: ^/bundles/, role: IS_AUTHENTICATED_ANONYMOUSLY }      # allow assets to be loaded anonymously

        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { …
Run Code Online (Sandbox Code Playgroud)

symfony fosuserbundle

10
推荐指数
2
解决办法
1万
查看次数

如何阻止Coldfusion将查询列名转换为大写?

当我使用ColdFusion 8中的cfquery标签从MySQL表中选择数据时,即使我将它们存储在数据库表中的camelCase中,列名也都会转换为大写.有没有办法让ColdFusion尊重列名的情况?

我问的原因是因为我将查询结果作为JSON对象返回,我不想在JavaScript端使用大写属性名称,因为我保留了常量的命名约定.

coldfusion cfquery

7
推荐指数
2
解决办法
1929
查看次数

如何在同一台机器上运行多个版本的PHPUnit?

我正在为一些项目使用Zend Framework,并希望为它们构建PHPUnit测试套件.不幸的是,Zend Framework中的当前版本(1.11.x)仅支持PHPUnit 3.5.同时,我还想开始使用Symfony框架,而Symfony框架又支持更新版本的PHPUnit.那么问题是,如何在我的开发机器上同时运行多个版本的PHPUnit而无需安装单独的服务器或类似的东西?

我正在运行OS X Lion(10.7)并使用通过MacPorts安装的apache和php(5.3.10).理想情况下,我想最终在一种情况下我可以在终端中输入例如phpunit5来执行3.5版本并键入phpunit6来执行3.6版本,依此类推.

php phpunit unit-testing

7
推荐指数
1
解决办法
1275
查看次数