ระหว่างที่ใช้ให้น้องทดสอบ Container น้องแจ้งข่าวร้ายมาว่า TextFile มันออก แต่มันได้ 0 bytes !!!!!
ผมเลยใช้ให้น้องไล่คำสั่งของ Shell มา พบว่า
- คำสั่งแรกเป็นตัว db2 export
สรุป คำสั่งแรกปกติ ได้ textfile ไม่ 0 byte - คำสั่งที่สอง ตัว iconv ที่แปลง encoding
สรุป ขัดและคำสั่งนี้แหละ ที่มันได้ TextFile 0 bytes
หลังจากรู้คำสั่งแล้วลองเข้าไปรันใน Container กันครับ จะได้รู้ว่า Error จริงมัน คือ อะไร ?
[invsapp@ae2cb3a91d84 infsys]$ iconv -f UTF-8 -t TIS-620 /usr/interface/log/infsys/ExpCashflow20220721.txt > Cashflow20220721.txt iconv: failed to start conversion processing: No such file or directory
เจอ Error กวนตีนอีกครับ
iconv: failed to start conversion processing: No such file or directory
แต่จริงๆมันมีไฟล์นะ เลยนึกเคสตอน Implement RedHat8 ขึ้นมาได้ เกี่ยวกับ TIS-620 เลยลองคำสั่ง iconv -l
ชัดเลยครับ ไม่มี TIS-620 จริงด้วย
[invsapp@ae2cb3a91d84 infsys]# iconv -l The following list contains all the coded character sets known. This does not necessarily mean that all combinations of these names can be used for the FROM and TO command line parameters. One coded character set can be listed with several different names (aliases). 8859_1, 10646-1:1993, 10646-1:1993/UCS4, ANSI_X3.4-1968, ANSI_X3.4-1986, ANSI_X3.4, ANSI_X3.110-1983, ANSI_X3.110, ASCII, CP367, CP819, CP1252, CSASCII, CSA_T500-1983, CSA_T500, CSISO99NAPLPS, CSISOLATIN1, CSUCS4, CSUNICODE, IBM367, IBM819, ISO-8859-1, ISO-8859-15, ISO-10646-UCS-2, ISO-10646, ISO-10646/UCS2, ISO-10646/UCS4, ISO-10646/UTF-8, ISO-10646/UTF8, ISO-IR-6, ISO-IR-99, ISO-IR-100, ISO-IR-193, ISO-IR-203, ISO646-US, ISO8859-1, ISO8859-15, ISO88591, ISO885915, ISO_646.IRV:1991, ISO_8859-1, ISO_8859-1:1987, ISO_8859-15, ISO_8859-15:1998, L1, LATIN-9, LATIN1, LATIN9, MS-ANSI, NAPLPS, OSF00010001, OSF00010020, OSF00010100, OSF00010101, OSF00010102, OSF00010104, OSF00010105, OSF00010106, OSF05010001, UCS-2, UCS-2BE, UCS-2LE, UCS-4, UCS-4BE, UCS-4LE, UCS2, UCS4, UNICODE, UNICODEBIG, UNICODELITTLE, US-ASCII, US, UTF-7, UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, UTF7, UTF8, UTF16, UTF16BE, UTF16LE, UTF32, UTF32BE, UTF32LE, WCHAR_T, WINDOWS-1252
- ถ้าอยากดูเฉพาะ TIS** ใช้คำสั่งนี้ได้ครับ
iconv -l | grep TIS
Back to baseimage
- หลังจากเจอสาเหตุที่ TextFile 0 bytes ว่าเกิดจากการที่ไม่มี TIS-620 แน่ๆ และ ผมเลยลอง pull image ที่ใช้ คือ RockLinux ที่ใช้ กับเวอร์ชันก่อนหน้ามาเทียบครับ
- น่าจะมี Change อะไรสักอย่างแน่ๆครับ
Solution
- ปรับแก้ docker file ให้ lock มาที่ rocky8.5 ก่อน
- OLD
FROM rockylinux:8
- NEW
FROM rockylinux:8.5
- และแจ้ง Bug ไป 0000159: Some coded character(Encoding) in missing when update base image from rocky8.5 > 8.6 - Rocky BugTracker (rockylinux.org) เผื่อเราจะได้รู้ เพราะอะไรถึงเอาออกไปครับ แต่ก็เดาได้นะสมัยนี้ UTF-8 แล้ว //เคสนี้ลูกค้าให้ทำฟรี จะไปรื้อ Script จาก TIS-620 > UTF-8 ก็ไม่ไหว
Reference
- สำหรับแจ้ง Bug ให้กับทีม RockyLinux https://bugs.rockylinux.org
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.