快速参考
-
由……维护: (注:原文中“Maintained by:”后面应该还有具体的维护者信息,但题目中未给出,所以翻译只能到此为止。)
YOURLS (该词若有特定含义,需根据更多上下文信息进行准确翻译,此处仅按原样进行了字面翻译) -
哪里可以获得帮助:
Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow
支持的标签及各自的 Dockerfile 链接
快速参考(续)
-
支持的架构:(更多信息)
amd64,arm32v5,arm32v6,arm32v7,arm64v8,i386,mips64le,ppc64le,s390x -
已发布的图像伪影细节:
repo-info repo 的repos/yourls/目录(历史记录)
(图像元数据、传输大小等) -
图像更新:
官方图像仓库的library/yourls标签
官方图像存储库的library/yourls文件(历史记录) -
此描述的来源:
文档库的yourls/目录(历史记录)
什么是 YOURLS?
YOURLS 是一组 PHP 脚本,可让您运行自己的 URL 缩短器。您将完全控制自己的数据、详细统计信息、分析、插件等。它是免费的。
如何使用此图像
启动一个 yourls 服务器实例
$ docker run --name some-yourls --link some-mysql:mysql \
-e YOURLS_SITE="https://example.com" \
-e YOURLS_USER="example_username" \
-e YOURLS_PASS="example_password" \
-d yourls
YOURLS 实例接受一些用于配置的环境变量,详见下文的“环境变量”部分。
如果您想使用外部数据库而不是链接的 mysql 容器,请使用 YOURLS_DB_HOST 指定主机名和端口,同时在 YOURLS_DB_PASS 中指定密码,在 YOURLS_DB_USER 中指定用户名(如果不是 root 的话):
$ docker run --name some-yourlss -e YOURLS_DB_HOST=10.1.2.3:3306 \
-e YOURLS_DB_USER=... -e YOURLS_DB_PASS=... -d yourls
连接到 YOURLS 管理界面
如果您希望能够从主机访问实例而无需容器的 IP,可以使用标准端口映射:
$ docker run --name some-yourls --link some-mysql:mysql -p 8080:80 -d yourls
然后,在浏览器中通过 http://localhost:8080/admin/ 或 http://<host-ip>:8080/admin/ 进行访问。
注意:首次实例化时,到达根文件夹将产生错误。通过路径 /admin/ 访问 YOURLS 管理界面。
环境变量
当您启动 yourls 图像时,您可以通过在 docker run 命令行上传递一个或多个环境变量来调整 YOURLS 实例的配置。
YOURLS 实例接受一些环境变量用于配置。
使用此 Docker 镜像的一些显著/重要示例包括以下内容。
YOURLS_SITE
必填。
YOURLS 实例 URL,无尾部斜杠,小写。
示例: YOURLS_SITE="https://example.com"
YOURLS_USER
必填。
YOURLS 实例用户名。
示例: YOURLS_USER="example_username"
YOURLS_PASS
必填。
YOURLS 实例密码。
示例: YOURLS_PASS="example_password"
YOURLS_DB_HOST, YOURLS_DB_USER, YOURLS_DB_PASS
如果链接到 mysql 容器,则为可选。
数据库的主机、用户(默认为 root )和密码。
YOURLS_DB_NAME
可选的。
数据库名称,默认为 yourls 。在安装 YOURLS 之前,必须先创建该数据库。
YOURLS_DB_PREFIX
可选的。
数据库表前缀,默认为 yourls_ 。仅在需要覆盖默认表前缀时设置此项。
Docker 机密信息
作为通过环境变量传递敏感信息的替代方法,可将 _FILE 附加到先前列出的环境变量上,从而使初始化脚本从容器中存在的文件加载这些变量的值。特别是,这可用于从存储在 /run/secrets/<secret_name> 文件中的 Docker 机密中加载密码。例如:
$ docker run --name some-yourls -e YOURLS_DB_PASS_FILE=/run/secrets/mysql-root ... -d yourls:tag
目前,这对 YOURLS_DB_HOST 、 YOURLS_DB_USER 、 YOURLS_DB_PASS 、 YOURLS_DB_NAME 、 YOURLS_DB_PREFIX 、 YOURLS_SITE 、 YOURLS_USER 和 YOURLS_PASS 提供支持。
...通过 docker-compose 或 docker stack deploy
示例 docker-compose.yml 用于 yourls :
version: '3.1'
services:
yourls:
image: yourls
restart: always
ports:
- 8080:80
environment:
YOURLS_DB_PASS: example
YOURLS_SITE: https://example.com
YOURLS_USER: example_username
YOURLS_PASS: example_password
mysql:
image: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: yourls
运行 docker stack deploy -c stack.yml yourls (或 docker-compose -f stack.yml up ),等待其完全初始化,然后访问 http://swarm-ip:8080/admin/ 、 http://localhost:8080/admin/ 或 http://<host-ip>:8080/admin/ (视情况而定)。
添加额外的库/扩展
此图像未提供任何额外的 PHP 扩展或其他库,即使流行的插件需要它们。存在无数可能的插件,它们可能需要 PHP 支持的任何扩展。包含所有现有的 PHP 扩展会极大地增加图像大小。
如果您需要其他 PHP 扩展,您需要创建自己的映像来替代此映像。 php 映像的文档说明了如何编译其他扩展。 (注:原文中的 FROM 和 php 可能是特定的术语或代码,由于缺乏更多上下文信息,只能按原样保留)
以下 Docker Hub 功能可帮助您完成使依赖镜像保持最新的任务:
- 自动化构建使 Docker Hub 在您每次向 Dockerfile 推送更改时自动构建它。
图像变体
yourls 图像有多种类型,每种都针对特定的用例而设计。
yourls:<version>
这是事实上的映像。如果您不确定自己的需求是什么,您可能想要使用这个。它被设计为既可以用作一次性容器(挂载您的源代码并启动容器以启动您的应用程序),也可以作为构建其他映像的基础。
yourls:<version>-fpm
此变体包含 PHP-FPM,它是 PHP 的一种 FastCGI 实现。有关 PHP-FPM 的更多信息,请访问 PHP-FPM 网站。
为了使用此图像变体,将需要某种反向代理(例如 NGINX、Apache 或其他支持 FastCGI 协议的工具)。
一些潜在的有用资源:
- PHP-FPM.org (该文本为英文缩写或特定名称,在中文中可能没有完全对应的专用词汇,所以直接保留原文)
- 由 @md5 提供的简化示例
- 非常详细的帕斯卡尔·兰多(Pascal Landau)所著文章
- Stack Overflow 讨论
- Apache httpd 维基示例
警告:FastCGI 协议本质上是信任的,因此在私有容器网络之外暴露是极其不安全的——除非您确切知道自己在做什么(并且愿意承担极大的风险),否则不要将 Docker 的 --publish ( -p )标志与此图像变体一起使用。
许可证
查看此映像中所包含软件的许可证信息。
与所有 Docker 镜像一样,这些镜像可能还包含其他可能受其他许可证约束的软件(例如来自基础发行版的 Bash 等,以及所包含的主要软件的任何直接或间接依赖项)。
一些能够自动检测到的额外许可信息可能会在 repo-info 存储库的 yourls/ 目录中找到。
对于任何预构建图像的使用,图像用户有责任确保对此图像的任何使用都符合其中包含的所有软件的任何相关许可。
