热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

docker_lnmp封装mosquitto

题目描述如何在原有的dockerfile上添加对应的镜像封装到docker

题目描述

如何在原有的dockerfile上添加对应的镜像封装到docker




题目来源及自己的思路

我是使用了开源的dockerdnmp
https://github.com/yeszao/dnmp

然后我参考了
https://github.com/klein0r/ph...
进行整合,代码如下
我把代码放入Dockerfile后的



RUN apt-get update

1
2
3
4
5
6
7
8
# Install dependencies

RUN apt-get update && apt-get upgrade -y --force-yes && apt-get install -y --force-yes --no-install-recommends apt-utils

RUN apt-get -y --force-yes install git vim



RUN mkdir -p /opt/analytics-mqtt && git clone https://github.com/klein0r/php-analytics-mqtt.git /opt/analytics-mqtt

RUN cd /opt/analytics-mqtt && php composer.phar install



WORKDIR /opt/analytics-mqtt


相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
这是我docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
version: "3"

services:

  nginx:

    image: nginx:alpine

    ports:

      - "80:80"

      - "443:443"

    volumes:

      - ./www/:/var/www/html/:rw

      - ./conf/conf.d:/etc/nginx/conf.d/:ro

      - ./conf/nginx.conf:/etc/nginx/nginx.conf:ro

      - ./log/:/var/log/dnmp/:rw

    restart: always

    networks:

      - net-php72

      - net-php56

      - net-php54



  php72:

    build:

      context: .

      args:

        PHP_VERSION: 7.2

        SOURCE_LIST: stretch

        XDEBUG_VERSION: 2.6.1

        SWOOLE_VERSION: 4.2.1

        SUPPORT_MCRYPT: "false"

        BUILT_IN_OPCACHE: "true"

    expose:

      - "9000"

    volumes:

      - ./www/:/var/www/html/:rw

      - ./conf/php.ini:/usr/local/etc/php/php.ini:ro

      - ./conf/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf:rw

      - ./log/:/var/log/dnmp/:rw

    restart: always

    cap_add:

      - SYS_PTRACE

    networks:

      - net-php72

      - net-mysql

      - net-redis



  php56:

    build:

      context: .

      args:

        PHP_VERSION: 5.6

        SOURCE_LIST: jessie

        XDEBUG_VERSION: 2.5.5

        SWOOLE_VERSION: 2.0.11

        SUPPORT_MCRYPT: "true"

        BUILT_IN_OPCACHE: "true"

    expose:

      - "9000"

    volumes:

      - ./www/:/var/www/html/:rw

      - ./conf/php.ini:/usr/local/etc/php/php.ini:ro

      - ./conf/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf:rw

      - ./log/:/var/log/dnmp/:rw

    restart: always

    cap_add:

      - SYS_PTRACE

    networks:

      - net-php56

      - net-mysql

      - net-redis



  php54:

    build:

      context: .

      args:

        PHP_VERSION: 5.4

        SOURCE_LIST: jessie

        XDEBUG_VERSION: 2.4.1

        SWOOLE_VERSION: "false"

        SUPPORT_MCRYPT: "true"

        BUILT_IN_OPCACHE: "false"

    expose:

      - "9000"

    volumes:

      - ./www/:/var/www/html/:rw

      - ./conf/php.ini:/usr/local/etc/php/php.ini:ro

      - ./conf/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf:rw

      - ./log/:/var/log/dnmp/:rw

    restart: always

    cap_add:

      - SYS_PTRACE

    networks:

      - net-php54

      - net-mysql

      - net-redis



  mysql:

    image: mysql:8.0

    ports:

      - "3307:3306"

    volumes:

      - ./conf/mysql.cnf:/etc/mysql/conf.d/mysql.cnf:ro

      - ./mysql/:/var/lib/mysql/:rw

    restart: always

    networks:

      - net-mysql

    environment:

      MYSQL_ROOT_PASSWORD: "123456"



  redis:

    image: redis:4.0

    restart: always

    networks:

      - net-redis

    ports:

      - "6380:6379"



  phpmyadmin:

    image: phpmyadmin/phpmyadmin:latest

    ports:

      - "8080:80"

    networks:

      - net-mysql

    environment:

      - PMA_HOST=mysql

      - PMA_PORT=3306



  phpredisadmin:

    image: erikdubbelboer/phpredisadmin:latest

    ports:

      - "8081:80"

    networks:

      - net-redis

    environment:

      - REDIS_1_HOST=redis

      - REDIS_1_PORT=6379



networks:

  net-php72:

  net-php56:

  net-php54:



  net-mysql:

  net-redis:

这是我的Dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
ARG PHP_VERSION

FROM php:${PHP_VERSION}-fpm



ARG SOURCE_LIST

ARG XDEBUG_VERSION

ARG SWOOLE_VERSION

ARG REDIS_VERSION=4.1.1

ARG SUPPORT_MCRYPT

ARG BUILT_IN_OPCACHE



COPY ./sources.list/$SOURCE_LIST /etc/apt/sources.list

RUN apt-get update



# Composer

RUN php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" \

    && php composer-setup.php \

    && php -r "unlink('composer-setup.php');" \

    && mv composer.phar /bin/composer \

    && composer config -g repo.packagist composer https://packagist.phpcomposer.com



# Install extensions from source

COPY ./extensions /tmp/extensions

RUN chmod +x /tmp/extensions/install.sh \

    && /tmp/extensions/install.sh \

    && rm -rf /tmp/extensions



# More extensions

# 1. soap requires libxml2-dev.

# 2. xml, xmlrpc, wddx require libxml2-dev and libxslt-dev.

# 3. Line `&& :\` do nothing just for better reading.

RUN apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev \

    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \

    && docker-php-ext-install gd \

    && :\

    && apt-get install -y libicu-dev \

    && docker-php-ext-install intl \

    && :\

    && apt-get install -y libxml2-dev \

    && apt-get install -y libxslt-dev \

    && docker-php-ext-install soap \

    && docker-php-ext-install xsl \

    && docker-php-ext-install xmlrpc \

    && docker-php-ext-install wddx \

    && :\

    && apt-get install -y libbz2-dev \

    && docker-php-ext-install bz2 \

    && :\

    && docker-php-ext-install zip \

    && docker-php-ext-install pcntl \

    && docker-php-ext-install pdo_mysql \

    && docker-php-ext-install mysqli \

    && docker-php-ext-install mbstring \

    && docker-php-ext-install exif \

    && docker-php-ext-install bcmath \

    && docker-php-ext-install calendar \

    && docker-php-ext-install sockets \

    && docker-php-ext-install gettext \

    && docker-php-ext-install shmop \

    && docker-php-ext-install sysvmsg \

    && docker-php-ext-install sysvsem \

    && docker-php-ext-install sysvshm \

    && docker-php-ext-install mysql  \

    #&& docker-php-ext-install ZendGuardLoader \

    #&& docker-php-ext-install opcache  \

    #&& docker-php-ext-install pdo_firebird \

    #&& docker-php-ext-install pdo_dblib \

    #&& docker-php-ext-install pdo_oci \

    #&& docker-php-ext-install pdo_odbc \

    #&& docker-php-ext-install pdo_pgsql \

    #&& docker-php-ext-install pgsql \

    #&& docker-php-ext-install oci8 \

    #&& docker-php-ext-install odbc \

    #&& docker-php-ext-install dba \

    #&& docker-php-ext-install interbase \

    #&& :\

    #&& apt-get install -y curl \

    #&& apt-get install -y libcurl3 \

    #&& apt-get install -y libcurl4-openssl-dev \

    #&& docker-php-ext-install curl \

    #&& :\

    #&& apt-get install -y libreadline-dev \

    #&& docker-php-ext-install readline \

    #&& :\

    #&& apt-get install -y libsnmp-dev \

    #&& apt-get install -y snmp \

    #&& docker-php-ext-install snmp \

    #&& :\

    #&& apt-get install -y libpspell-dev \

    #&& apt-get install -y aspell-en \

    #&& docker-php-ext-install pspell \

    #&& :\

    #&& apt-get install -y librecode0 \

    #&& apt-get install -y librecode-dev \

    #&& docker-php-ext-install recode \

    #&& :\

    #&& apt-get install -y libtidy-dev \

    #&& docker-php-ext-install tidy \

    #&& :\

    #&& apt-get install -y libgmp-dev \

    #&& ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h \

    #&& docker-php-ext-install gmp \

    #&& :\

    #&& apt-get install -y postgresql-client \

    #&& apt-get install -y mysql-client \

    #&& :\

    #&& apt-get install -y libc-client-dev \

    #&& docker-php-ext-configure imap --with-kerberos --with-imap-ssl \

    #&& docker-php-ext-install imap \

    #&& :\

    #&& apt-get install -y libldb-dev \

    #&& apt-get install -y libldap2-dev \

    #&& docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu \

    #&& docker-php-ext-install ldap \

    #&& :\

    #&& apt-get install -y libmagickwand-dev \

    #&& pecl install imagick-3.4.3 \

    #&& docker-php-ext-enable imagick \

    && :\

    && apt-get install -y libmemcached-dev zlib1g-dev \

    && pecl install memcached-2.2.0 \

    && pecl install Mosquitto-alpha \

    && docker-php-ext-enable memcached


你期待的结果是什么?实际看到的错误信息又是什么?

希望能兼容封装进去,但是我尝试了修修改改,报错依然很多


   



推荐阅读
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 求助:在CentOS 5.8系统上安装PECL扩展遇到问题
    在 CentOS 5.8 系统上尝试安装 APC 扩展时遇到了问题,具体表现为 PECL 工具无法正常工作。为了确保顺利安装,需要解决 PECL 的相关依赖和配置问题。建议检查 PHP 和 PECL 的版本兼容性,并确保所有必要的库和开发工具已正确安装。此外,可以尝试手动下载 APC 扩展的源代码并进行编译安装,以绕过 PECL 工具的限制。 ... [详细]
  • 在 Kubernetes 中,Pod 的调度通常由集群的自动调度策略决定,这些策略主要关注资源充足性和负载均衡。然而,在某些场景下,用户可能需要更精细地控制 Pod 的调度行为,例如将特定的服务(如 GitLab)部署到特定节点上,以提高性能或满足特定需求。本文深入解析了 Kubernetes 的亲和性调度机制,并探讨了多种优化策略,帮助用户实现更高效、更灵活的资源管理。 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • syncd是一款开源的代码部署工具,它具有简单、高效、易用等特点,可以提高团队的工作效率. ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 思科IOS XE与ISE集成实现TACACS认证配置
    本文详细介绍了如何在思科IOS XE设备上配置TACACS认证,并通过ISE(Identity Services Engine)进行用户管理和授权。配置包括网络拓扑、设备设置和ISE端的具体步骤。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 基于Web的Kafka管理工具Kafkamanager首次访问Web界面的详细配置指南(附图解)
    首次访问Kafkamanager Web界面时,需要对Kafka集群进行配置。这一过程相对简单,用户只需依次点击【Cluster】>【Add Cluster】,按照提示完成相关设置即可。本文将通过图文并茂的方式,详细介绍每一步的配置步骤,帮助用户快速上手Kafkamanager。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 本文提供了详细的 Filebeat 部署指南,涵盖了解压安装包、配置文件编辑以及启动服务等关键步骤。具体操作包括使用 `tar -zxvf filebeat-6.1.1-linux-x86_64.tar.gz` 解压安装包,并通过 `vi /home/elk/filebeat-6.4.2-linux/filebeat.yml` 编辑配置文件。此外,文章还介绍了最佳实践,帮助用户确保 Filebeat 的高效运行和数据传输的可靠性。 ... [详细]
  • 本文深入探讨了使用Puppet进行软件包分发与管理的方法。首先介绍了fpm这一跨平台的软件包制作工具,其简便的操作流程使得软件包的创建变得轻松快捷。fpm的项目地址为:https://github.com/jordansissel/fpm。通过结合Puppet和fpm,可以实现高效、可靠的软件包管理和部署。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • MQTT介绍(MessageQueuingTelemetryTransport,消息队列遥测传输)是IBM推出的一种针对移动终端设备的基于TCPIP的发布订阅协议可以连接大量的远程 ... [详细]
author-avatar
小小的dream
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有