分享如何将自定义容器镜像切换到 Bitnami 容器镜像,以及如何搭配反向代理软件(如 Traefik)配置使用。 写在前面 去年曾分享过一篇关于 Phabricator 的内容,《使用 Docker 和 Traefik v2 搭建 Phabricator》,当时介绍了如何构建自定义的容器镜像,以及如何搭配汉化补丁使用应用 考虑到尽可能省心的长期使用,我选择将镜像切换至了 Bitnami 的镜像,这样可以使用到每小时都由 GitHub 构建的透明可信的镜像,以及更少的操心各种安全补丁和升级的事情。 梳理问题 Bitnami 的镜像提供非常多的环境变量配置,用来应对各种场景。然而针对以下两个场景的支持缺不够完善: 使用已有数据库运行软件,而非从零到一进行初始化。 最后 这篇关于 Phabricator 切换 Bitnami 镜像的内容,就先写到这里。
分享如何将自定义容器镜像切换到 Bitnami 容器镜像,以及如何搭配反向代理软件(如 Traefik)配置使用。 写在前面 去年曾分享过一篇关于 Phabricator 的内容,《使用 Docker 和 Traefik v2 搭建 Phabricator》,当时介绍了如何构建自定义的容器镜像,以及如何搭配汉化补丁使用应用 考虑到尽可能省心的长期使用,我选择将镜像切换至了 Bitnami 的镜像,这样可以使用到每小时都由 GitHub 构建的透明可信的镜像,以及更少的操心各种安全补丁和升级的事情。 梳理问题 Bitnami 的镜像提供非常多的环境变量配置,用来应对各种场景。然而针对以下两个场景的支持却不够完善: 使用已有数据库运行软件,而非从零到一进行初始化。 最后 这篇关于 Phabricator 切换 Bitnami 镜像的内容,就先写到这里。
目录 bitnami-docker-postgresql 仓库 流复制相关环境变量 第 1 步:创建 replication master 步骤 2:创建 replication slave 同步提交 更多 bitnami/postgresql 源码:bitnami-docker-postgresql https://github.com/bitnami/bitnami-docker-postgresql 流复制相关环境变量 使用以下环境变量,可以使用 Bitnami PostgreSQL Docker 镜像 轻松设置流复制集群: POSTGRESQL_REPLICATION_MODE: replication :latest' ports: - '5432' volumes: - 'postgresql_master_data:/bitnami/postgresql' /postgresql' postgresql-slave: image: 'bitnami/postgresql:latest' ports: - '5432'
下载安装文件bitnami-redmine-3.3.1-0-linux-x64-installer.run 官方下载链接:https://bitnami.com/stack/redmine/installer chmod 777 bitnami-redmine-3.3.1-0-linux-x64-installer.run 二、执行安装文件。 . /bitnami-redmine-3.3.1-0-linux-x64-installer.run 1、选择安装语言 2、选择安装组件默认都需要安装【svn已配置的选择N】 3、选择安装路径,默认直接回车
官方页面https://bitnami.com/stack/gitlab/installer 下载.run文件,下载完成按sh的方式执行,需要root权限。
近期Bitnami官方对旗下镜像分发策略进行重大调整,原可在DockerHub免费获取的Bitnami核心安全镜像(覆盖Kafka、Redis、MySQL、Elasticsearch等全品类),现已全面取消免费下载服务 此次调整并非针对单一镜像,而是覆盖Bitnami整个命名空间下的所有核心安全镜像,从主流的中间件、数据库到监控、运维工具均受影响,其中Kafka安全镜像是企业级流数据处理的常用资源,也是本次调整中最具代表性的受影响镜像 一、先搞懂:Bitnami镜像现在分哪两类?调整后,Bitnami镜像主要分为商业安全镜像和旧版遗留镜像,二者的获取方式、使用场景差异显著,大家可根据自身需求选择,避免用错版本踩坑。 场景3:旧版Bitnami镜像项目临时迁移/数据同步仅用:轩辕镜像仓库的BitnamiLegacy旧版遗留镜像,且迁移完成后务必将镜像保存至私有仓库,避免后续官方移除仓库导致镜像无法获取,具体操作步骤( q=bitnamilegacy&source=docker.io&page=1如需了解Bitnami商业安全镜像的订阅信息、安全特性,可前往Bitnami官方网站查询。
安装 Bitnami Redmine官网:https://bitnami.com/stack/redmine下载对应版本,之后傻瓜式安装 ? 安装好了后,打开Bitnami Redmine Stack管理工具,点击Go To Applocation,点击redmine,就可以使用redmine了。 Redmine部署及配置 ? 常见问题: Bitnami redmine常见问题与配置 《一》Bitnami redmine默认用的是80端口如何手动更改端口号; 下面以把端口号8081更改为3000为列: 需要更能两个文件 第一个 :httpd.conf文件 F:\Bitnami\redmine-3.2.1-1\apache2\conf\httpd.conf下找到这行 #Listen 12.34.56.78:8081 Listen ServerName localhost:3000 第二个文件:bitnami.conf文件 F:\Bitnami\redmine-3.2.1-1\apache2\conf\bitnami # Default
与容器镜像仓库不同,Helm 没有类似 Docker Hub 大一统的官方仓库。Helm Charts 一般都是各个项目自己开发,资源比较分散,做统一的镜像站有难度。 网上很早就有一些 Helm 仓库的国内镜像,但是已经多年未更新了。 添加仓库helm repo add bitnami "https://helm-charts.itboon.top/bitnami" --force-updatehelm repo add grafana /redis镜像源BitnamiPrometheus CommunityGrafanaIngress Nginx加速原理基于 HTTP 发布的 Helm Charts 产物可以直接镜像到国内,例如 Grafana 、Prometheus Community基于 OCI 发布的 Helm Charts,可以复刻源码并通过 GitHub CI 构建产物,然后镜像到国内,例如 Bitnami
第一步:拉取镜像 还是老规矩,要创建容器,我们首先要拉取镜像,除了拉取testlink镜像之外,由于testlink还依赖于数据库,所以我们还需要拉取mariadb镜像,命令如下: # 拉取mariadb 镜像 docker pull bitnami/mariadb # 拉取testlink镜像 docker pull bitnami/testlink-archived 注:最新的testlink镜像名称已经改为 -v /data/testlink:/var/lib/mysql -p 8088:3306 bitnami/mariadb 注:启动容器时,我们还需要创建一个数据库,后续testlink将连接这个数据库 /mariadb "/opt/bitnami/script…" 4 minutes ago Up 4 minutes 0.0.0.0:8088->3306/tcp, /bitnami/bitnami-docker-testlink/issues testlink 07:02:51.82 testlink 07:02:51.83 INFO ==> ** Starting
获取此镜像 获取 Bitnami PostgreSQL HA Docker 镜像的推荐方法是从 Docker Hub Registry 中提取预构建的镜像。 使用流复制和 repmgr 设置 HA PostgreSQL 集群 使用以下环境变量,可以使用 Bitnami PostgreSQL HA Docker 镜像轻松设置具有[流复制](Streaming 配置文件 该镜像在 /opt/bitnami/repmgr/conf/ 和 /opt/bitnami/postgresql/conf/ 中查找 repmgr.conf、postgresql.conf 和 PostgreSQL HA 容器中可用的环境变量列表: nil 日志 Bitnami PostgreSQL HA Docker 镜像将容器日志发送到 stdout。 https://docs.docker.com/engine/admin/logging/overview/ 维护 升级这个镜像 Bitnami 提供了 PostgreSQL HA 的最新版本,
第一步:拉取镜像还是老规矩,要创建容器,我们首先要拉取镜像,除了拉取testlink镜像之外,由于testlink还依赖于数据库,所以我们还需要拉取mariadb镜像,命令如下:# 拉取mariadb镜像 docker pull bitnami/mariadb# 拉取testlink镜像docker pull bitnami/testlink-archived注:最新的testlink镜像名称已经改为testlink-archived -v /data/testlink:/var/lib/mysql -p 8088:3306 bitnami/mariadb注:启动容器时,我们还需要创建一个数据库,后续testlink将连接这个数据库启动 /mariadb "/opt/bitnami/script…" 4 minutes ago Up 4 minutes 0.0.0.0:8088->3306/tcp, /bitnami/bitnami-docker-testlink/issuestestlink 07:02:51.82testlink 07:02:51.83 INFO ==> ** Starting
获取镜像 如果不显示指定镜像TAG,则下载最新镜像 $ docker pull ubuntu:14.04 14.04: Pulling from library/ubuntu 2e6e20c8e2e6: 可以看到多了一个镜像,但是和以前的镜像指向的是同一个镜像文件,docker tag命令添加的标签实际上起到了类似链接的作用 $ docker tag rabbitmq:latest myrabbitmq /nginx Bitnami nginx Docker Image 143 [OK] 删除镜像 -f 强制删除镜像,不推荐,最好删除容器之后在删除镜像 $ docker search -f STARS=3 nginx /nginx Bitnami nginx Docker Image 143 [OK]
暂时选择了rabbitmq这个方案,通过rabbitmq_delayed_message_exchange这个社区插件实现,所以为了更方便使用,不再到处挂接plugin目录,这里准备自己制作一个docker镜像 ,下面是简略步骤 1、编写Dockerfile,基础镜像采用的是bitnami的rabbitmq,使用起来比rabbitmq官方的好用很多,安利这款镜像,内容如下,仅供参考 FROM docker.io /bitnami/rabbitmq:3.9.8-debian-10-r6 COPY plugins /opt/bitnami/rabbitmq/plugins 2、下载rabbitmq_delayed_message_exchange 下载的ez格式文件,通过unzip命令可以解压缩),解压后目录如下: 把所有要加载的plugin解压到plugins目录下即可,Dockerfile里面会把plugins目录下内容拷贝到/opt/bitnami 命令打包Docker镜像,这样打包出来的镜像里面就会包含rabbitmq_delayed_message_exchange插件,只需通过RABBITMQ_PLUGINS这个环境变量配置启用的rabbitmq
可以访问 Testlink 镜像的介绍网站:https://hub.docker.com/r/bitnami/testlink/ 查看更多信息。 \ --net testlink-tier \ --volume ${HOME}/docker/mariadb:/bitnami \ bitnami/mariadb:10.3.22run -d:以后台 bitnami/mariadb:10.3.22:启动容器使用的镜像和版本号docker run -d -p 80:80 -p 443:443 --name testlink \ -e TESTLINK_DATABASE_USER bitnami/testlink:1.9.20:启动容器使用的镜像和版本号在你的浏览器内访问:http://你的IP地址80 和 443 为 HTTP 访问端口。 默认用户:user,默认密码:bitnami。图片能看到上图界面就代表 Testlink 服务启动成功,输入默认用户名user和默认密码bitnami就可以访问 Testlink 服务啦!
镜像本地化 如果需要支持统一配置镜像仓库,需要完成镜像的本地化配置。 global 中有两个参数,global.imageRegistry 以及 global.imageRepository 用于配置镜像本地化。 查看一下原始 chart 生成使用到的镜像,要把这些镜像替换成对应的格式。 1.6.0-debian-11-r11 image: registry.cn-beijing.aliyuncs.com/kubegems:1.22.1-debian-11-r26 由于镜像本地化需要将镜像 copy 到 kubgems 镜像仓库中,可以执行: skopeo copy -a docker://docker.io/bitnami/nginx-ingress-controller:1.6.0-
公司 ES 使用 Log4j 2 组件,存在安全问题,升级 ES 镜像中的 Log4j 2 版本解决该问题。 原理 java 项目只用替换编译出来的 jar 包就可以。 Dockerfile ├── static │ ├── log4j-api-2.16.0.jar │ └── log4j-core-2.16.0.jar 编写 Dockerfile,替换原 es 镜像中的 /elasticsearch/lib/ COPY static/log4j-api-2.16.0.jar /opt/bitnami/elasticsearch/lib/ RUN rm -rf /opt/ bitnami/elasticsearch/lib/log4j-core-2.11.1.jar && rm -rf /opt/bitnami/elasticsearch/lib/log4j-api-2.11.1 .jar log4j 在每个 ES 镜像中位置不同,可以进入容器,使用find 命令查找 docker run -it --user root devops-docker.pkg.codingcorp.net
dockerfile 编写 Dockerfile,替换原 es 镜像中的 jar。 coding-private/infra/elasticsearch:6.8.13.analysis.ik USER root COPY static/log4j-core-2.16.0.jar /opt/bitnami /elasticsearch/lib/ COPY static/log4j-api-2.16.0.jar /opt/bitnami/elasticsearch/lib/ RUN rm -rf /opt/ bitnami/elasticsearch/lib/log4j-core-2.11.1.jar && rm -rf /opt/bitnami/elasticsearch/lib/log4j-api-2.11.1 打包镜像,镜像 tag 自定义 docker build .
bitnami/containershttps://github.com/bitnami/containers Stars: 2.6k License: NOASSERTION picture containers 是 Bitnami 提供的容器镜像。 Bitnami 紧密跟踪上游源代码变化,并使用自动化系统及时发布新版本的镜像。 最新的错误修复和功能可尽快使用。 所有 Bitnami 镜像都经过签名,确保完整性验证。 定期发布最新发行包更新的容器镜像。
CentOS系统更换软件安装源 yum默认链接的还是国外的镜像,速度相对不理想,配置成国内的镜像会快很多 首先进行更新: yum update base源 第一步:备份你的原镜像文件,以免出错后可以恢复 下载 Docker 镜像的时候,默认会访问 Docker 网站,而 Docker 网站是在国外部署的,距离比较远下载速度特别慢。可以通过设置加速器的方式来加速 Docker 镜像的下载。 -net testlink:指定网络 -v ${PWD}/mariadb:/bitnami bitnami/mariadb:10.3.22:挂载目录 部署 Testlink docker run -d :传入数据库名 --net testlink:指定网络和数据库一个网络下 -v ${PWD}/testlink:/bitnami :挂载一个目录 bitnami/testlink:1.9.20:镜像的版本信息和名字 默认用户:user,默认密码:bitnami。
基于镜像部署 pgpool 组件,并修改组件配置。 建立组件之间的依赖关系。 镜像均采用 bitnami 制作的 postgresql-repmgr[3] 和 pgpool[4],因 bitnami 制作的镜像将很多配置文件都抽离成了环境变量,配置比较方便。 创建组件 进入团队内 -> 新建组件 -> 基于镜像创建组件,应用、组件、英文名称等自定义即可,镜像填写 bitnami/postgresql-repmgr:14.7.0。 2. 创建组件 进入团队内 -> 新建组件 -> 基于镜像创建组件,应用、组件、英文名称等自定义即可,镜像填写 bitnami/pgpool:4.4.2。 2. /main/bitnami/pgpool ----