Skip to content

快速参考

支持的标签及各自的 Dockerfile 链接

快速参考(续)

什么是 YOURLS?

YOURLS 是一组 PHP 脚本,可让您运行自己的 URL 缩短器。您将完全控制自己的数据、详细统计信息、分析、插件等。它是免费的。

github.com/YOURLS/YOURLS (该文本为网址,在中文语境中一般直接保留原文)

logo

如何使用此图像

启动一个 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_HOSTYOURLS_DB_USERYOURLS_DB_PASSYOURLS_DB_NAMEYOURLS_DB_PREFIXYOURLS_SITEYOURLS_USERYOURLS_PASS 提供支持。

...通过 docker-composedocker 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

Try in PWD

运行 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 映像的文档说明了如何编译其他扩展。 (注:原文中的 FROMphp 可能是特定的术语或代码,由于缺乏更多上下文信息,只能按原样保留)

以下 Docker Hub 功能可帮助您完成使依赖镜像保持最新的任务:

  • 自动化构建使 Docker Hub 在您每次向 Dockerfile 推送更改时自动构建它。

图像变体

yourls 图像有多种类型,每种都针对特定的用例而设计。

yourls:<version>

这是事实上的映像。如果您不确定自己的需求是什么,您可能想要使用这个。它被设计为既可以用作一次性容器(挂载您的源代码并启动容器以启动您的应用程序),也可以作为构建其他映像的基础。

yourls:<version>-fpm

此变体包含 PHP-FPM,它是 PHP 的一种 FastCGI 实现。有关 PHP-FPM 的更多信息,请访问 PHP-FPM 网站。

为了使用此图像变体,将需要某种反向代理(例如 NGINX、Apache 或其他支持 FastCGI 协议的工具)。

一些潜在的有用资源:

警告:FastCGI 协议本质上是信任的,因此在私有容器网络之外暴露是极其不安全的——除非您确切知道自己在做什么(并且愿意承担极大的风险),否则不要将 Docker 的 --publish-p )标志与此图像变体一起使用。

许可证

查看此映像中所包含软件的许可证信息。

与所有 Docker 镜像一样,这些镜像可能还包含其他可能受其他许可证约束的软件(例如来自基础发行版的 Bash 等,以及所包含的主要软件的任何直接或间接依赖项)。

一些能够自动检测到的额外许可信息可能会在 repo-info 存储库的 yourls/ 目录中找到。

对于任何预构建图像的使用,图像用户有责任确保对此图像的任何使用都符合其中包含的所有软件的任何相关许可。