【问题标题】:Docker-compose automate installations for wkhtmltopdfDocker-compose 自动安装 wkhtmltopdf
【发布时间】:2018-10-22 12:53:26
【问题描述】:

我正在使用 docker 开发一个 symfony 项目,为了能够在项目中生成 PDF 文件,我需要安装 SnappyBundle https://github.com/KnpLabs/KnpSnappyBundle 。要生成pdf文件,还需要安装wkhtmltopdf。

这就是我所做的: 我以 root 身份连接到我的应用程序容器 docker exec -u root -t -i container_id /bin/bash

然后我安装了两个包

apt-get update
apt-get install wkhtmltopdf
apt-get install xvfb

然后我更改了我的 config.yml 文件以使用 xvfb 执行 wkhtmltopdf

这样就可以了,但是有没有办法用我的 docker-compose 简单地自动安装这些包?

version: '2'

networks:
    community:
        external: true

services:

    app:
        build: docker/php72
        working_dir: /var/www/app
        networks:
            community:
                aliases:
                    - app
            default:
                aliases:
                    - app.myapp
        volumes:
            - .:/var/www/app
            - ~/.composer:/var/www/.composer
        dns:
            - X.X.X.X
            - X.X.X.X
            - X.X.X.X
            - X.X.X.X
    web:
        image: nginx:1-alpine
        working_dir: /var/www/app
        networks:
            myapp:
                aliases:
                    - app
            default:
                aliases:
                    - app.myapp
        volumes:
            - ./docker/nginx/app.conf:/etc/nginx/conf.d/default.conf:ro
            - .:/var/www/app
            - ./var/logs/nginx/:/var/log/nginx
        expose:
            - 80
        depends_on:
            - app
        dns:
            - X.X.X.X
            - X.X.X.X
            - X.X.X.X
            - X.X.X.X

    mysql:
        image: mysql:5.7
        environment:
            MYSQL_ROOT_PASSWORD: XXXX
            MYSQL_USER: XXXX
            MYSQL_PASSWORD: XXXX
            MYSQL_DATABASE: XXXX
        ports:
            - "3306:3306"
        networks:
            community:
                aliases:
                    - bdd
            default:
                aliases:
                    - bdd.myapp
        dns:
            - X.X.X.X
            - X.X.X.X
            - X.X.X.X
            - X.X.X.X

我的 docker-compose 看起来像这样(我隐藏了一些信息)

【问题讨论】:

    标签: symfony docker docker-compose wkhtmltopdf


    【解决方案1】:

    在与docker-compose.yml 相同的位置创建一个名为Dockerfile 的文件。

    这应该是你的 dockerfile 的内容:

    FROM docker/php72
    
    RUN apt-get update && apt-get install -y wkhtmltopdf xvfb
    

    然后将您的 docker-compose 应用服务更改为:

    app:
        build: .
    

    然后运行docker-compose build,您将使用所需的依赖项构建一个新的docker镜像,并从那里运行应用程序。

    另外,一个快速提示:docker-compose exec service_name bashdocker exec -t -i container_id /bin/bash 相同

    【讨论】:

    • 太棒了。谢谢
    • 谢谢它对我有用,但是,有没有更优雅的方法,这将安装很多未使用的库.. :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多