【问题标题】:CircleCI using docker node:8 (debian) does not set up proper localeCircleCI 使用 docker node:8 (debian) 没有设置正确的语言环境
【发布时间】:2020-02-24 19:20:54
【问题描述】:

我使用 Jest 快照为我的测试流设置了 CircleCI 管道,但我的一个快照测试一直失败。我使用 Javascript 生成日期对象 (new Date("YYYY-MM-DD")) 并在本地生成 MM/DD/YYYY,但在 docker 映像 (node:8) 中生成 YYYY-MM-DD,因此快照测试失败。我尝试通过以下方式设置语言环境:

docker:
  - image: circleci/node:8
    environment:
        TZ: "America/Los_Angeles"
        LANG: en_US.UTF-8
        LANGUAGE: en_US.UTF-8
        LC_ALL: en_US.UTF-8

但它抱怨它无法设置默认语言环境,所以我添加了:

- run:
        name: Reconfigure Locale
        command: sudo dpkg-reconfigure locales

对于大多数有同样问题但不是我的情况的人来说,这似乎是一个解决方案。

我还尝试使用相同的本地 docker 映像并在那里对其进行测试,并且使用以下命令可以正常工作:

RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y locales

RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
dpkg-reconfigure --frontend=noninteractive locales && \
update-locale LANG=en_US.UTF-8

所以我在 circleci 和 sed 命令中尝试了这些,即使使用 sudo 调用它也会抱怨权限。

【问题讨论】:

    标签: docker jestjs circleci-2.0


    【解决方案1】:

    好吧,仅供参考,是节点版本导致了日期格式问题。我安装了处理节点应用程序语言环境的full-icu npm 包。为了重新审视我的问题,我已经成功安装了语言环境并将其设置为与本地计算机相同,但 Node 不会从系统中选择语言环境,而是从正在使用的浏览器中选择语言环境。我希望这些信息对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2015-04-08
      • 2022-01-20
      • 2022-11-13
      • 2013-07-01
      • 1970-01-01
      • 2017-04-19
      • 1970-01-01
      • 2015-07-31
      • 1970-01-01
      相关资源
      最近更新 更多