自定义 Docker 鲸鱼的语言

DockerBeginner
立即练习

介绍

你好,Docker 语言专家!你已经掌握了让 Docker 鲸鱼开口说话的方法,但你能让它精通多种语言吗?在本次挑战中,你将创建一个 Docker 镜像,利用环境变量来改变鲸鱼问候语的语言。准备好为我们的海洋朋友赋予全球化的声音吧!

这是一个「挑战」项目,它与「引导实验」不同,你需要尝试独立完成挑战任务,而不是按照实验步骤一步步学习。挑战通常具有一定的难度。如果你觉得困难,可以与 Labby 讨论或查看解决方案。历史数据显示,这是一个初学者级别的挑战,通过率为 99%。它在学习者中获得了 99% 的好评率。

创建一只通晓多国语言的鲸鱼

想象一下,你正在开发一个多语言应用程序,你需要一种方法在不同的语言环境中快速测试你的 Docker 配置。这就是我们的多语言鲸鱼大显身手的地方!

在本次挑战中,你将通过创建一个灵活的、具备语言感知能力的容器,将你的 Docker 技能提升到新的水平。你将使用环境变量——这是 Docker 生态系统中一个强大的工具——来动态更改我们友好的 Docker 鲸鱼的问候语言。

在开始之前,让我们先配置你的挑战环境。在终端中进入 ~/project/docker 目录。你会发现那里有一些由你的 Docker 导师提供的初始文件。这些文件将为你提供一个良好的起点,让你能够专注于本次挑战的核心概念。

准备好为我们的鲸鱼朋友赋予全球化的声音了吗?让我们在多语言容器的世界里掀起波澜吧!

任务

你的语言使命(如果你选择接受的话)是:

  1. 检查提供的 entrypoint.sh 脚本,了解它是如何处理不同语言的。
  2. 修改 Dockerfile 以包含 entrypoint.sh 脚本并设置环境变量。
  3. 根据完成的 Dockerfile 构建一个 Docker 镜像。
  4. 从你的镜像运行容器,尝试不同的语言设置。

要求

要成功完成此挑战,你必须:

  1. 在 Dockerfile 中使用 docker/whalesay 作为基础镜像(base image)。
  2. 在 Dockerfile 中创建一个名为 WHALE_LANGUAGE 的环境变量,默认值为 "English"。
  3. Dockerfile 中使用 COPY 指令将提供的 entrypoint.sh 脚本复制到镜像的根目录(/),命名为 /entrypoint.sh。确保它具有执行权限,并将其设置为 ENTRYPOINT
  4. 使用标签 polyglot-whale 构建你的镜像。
  5. 运行你的容器并设置环境变量,使鲸鱼能够说英语和西班牙语。
  6. ~/project/docker 目录中执行所有命令。

请记住,entrypoint.sh 脚本已经为你准备好了。你的主要任务是创建一个能够正确利用该脚本并允许通过环境变量自定义语言的 Dockerfile。

示例

当你选择西班牙语运行容器时,你应该看到类似如下的输出:

docker run -e WHALE_LANGUAGE=Spanish polyglot-whale
 _________
< ¡Hola! >
 ---------
    \
     \
      \
                    ###        .
              ### ### ###       ==
           ### ### ### ###      ===
       /""""""""""""""""___/ ===
  ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~
       \______ o          __/
        \    \        __/
          \____\______/

当使用默认的英语设置运行时:

docker run polyglot-whale
 _________
< Hello! >
 ---------
    \
     \
      \
                    ###        .
              ### ### ###       ==
           ### ### ### ###      ===
       /""""""""""""""""___/ ===
  ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~
       \______ o          __/
        \    \        __/
          \____\______/
✨ 查看解决方案并练习

总结

在本次挑战中,你通过创建一个使用环境变量进行配置的镜像,扩展了你的 Docker 技能。你已经学会了如何:

  1. 在 Dockerfile 中使用环境变量设置默认值。
  2. 创建一个简单的 Shell 脚本作为容器的入口点(entrypoint)。
  3. 在运行容器时覆盖环境变量。

这些技能对于创建灵活、可配置且能适应不同环境或用例的 Docker 镜像至关重要。在你的 Docker 学习旅程中,请记住环境变量是一个强大的工具,可以让你的容器在不同的部署场景中更具通用性且更易于管理。继续探索,祝你与鲸鱼交流愉快!