aws / aws/aws-lambda-base-images
In the amazon/aws-lambda-ruby:3.3 Docker image, a non-existent locale is set for LANG, causing the default encoding of Ruby strings to become US-ASCII
- 主要言語
- 言語のデータがありません
- スター
- 777
- フォーク
- 118
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
In the amazon/aws-lambda-ruby:3.3 Docker image, a non-existent locale is set for LANG, causing the default encoding of Ruby strings to become US-ASCII. Is this intentional?
### The behavior in the 2.7 image
```
% docker run --rm -it --entrypoint sh amazon/aws-lambda-ruby:2.7
sh-4.2# ruby -e 'p "string_value".encoding'
#
sh-4.2# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
sh-4.2# ruby -e 'p "string_value".encoding'
#
```
### The behavior in the 3.3 image
```
% docker run --rm -it --entrypoint sh amazon/aws-lambda-ruby:3.3
sh-5.2# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
sh-5.2# ruby -e 'p "string_value".encoding'
#
```
Due to this issue, when using Ruby 3.3, there were cases where an 'invalid byte sequence' error occurred when handling the contents of a file with UTF-8 strings from external sources. Therefore, I am addressing this by setting LANG to the existing UTF-8 encoding C.UTF-8 during the Docker build to ensure UTF-8 support.
```
% docker run --rm -it --entrypoint sh amazon/aws-lambda-ruby:3.3
sh-5.2# locale -a
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_COLLATE to default locale: No such file or directory
C
C.utf8
POSIX
```
コントリビューションガイド
調査の方向性
amazon/aws-lambda-ruby:3.3 イメージのビルド定義を特定し、その locale の設定を 2.7 イメージと比較してください。示されている Docker コマンドと Ruby コマンドで問題を再現し、LANG が利用可能な UTF-8 locale を示し、Ruby が UTF-8 の文字列エンコーディングを報告することを確認してください。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- aws, docker, ruby
- 領域
- backend, infrastructure
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100