bashの日付の追加がdockerで機能しない

bashの日付の追加がdockerで機能しない

私は多くのスタック交換サイトと日付を計算する方法のさまざまな他のチュートリアルサイトの例に従いました。コンテナでLinuxを試してみましたが、同じエラーが発生しました。

$ docker run -it bash date -d '2014-11-19T15:40:30+10d'
date: invalid date '2014-11-19T15:40:30+10d'
bash-5.0# date -d  '+10 days'
date: invalid date '+10 days'
bash-5.0# date -d  '+10 d'
date: invalid date '+10 d'
bash-5.0# date -d  '2014-11-19T15:40:30+10 d'
date: invalid date '2014-11-19T15:40:30+10 d'
bash-5.0# date -d  '2014-11-19T15:40:30+10 days'
date: invalid date '2014-11-19T15:40:30+10 days'
bash-5.0# date -d  '2014-11-19T15:40:30 +10 days'
date: invalid date '2014-11-19T15:40:30 +10 days'
bash-5.0# date -d  '2014-11-19T15:40:30 +10 d'
date: invalid date '2014-11-19T15:40:30 +10 d'

バッシュバージョン:

$ docker run -it bash bash --version
GNU bash, version 5.0.2(1)-release (x86_64-pc-linux-musl)
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

頑張ったこの投稿 この投稿そしてこの投稿そしてさらにこのランダムなウェブサイト

それらはすべて間違っているわけではありません。

ベストアンサー1

$ docker run bash date --version
BusyBox v1.29.3 (2019-01-24 07:45:07 UTC) multi-call binary.
...

使用しているBusyBoxのバージョンは、dateほとんどのデスクトップLinuxディストリビューションにあるCoreutilsのバージョンと完全に互換性がありません。 BusyBoxのマニュアルページを引用すると、次のようになります。

Recognized TIME formats:

hh:mm[:ss]
[YYYY.]MM.DD-hh:mm[:ss]
YYYY-MM-DD hh:mm[:ss]
[[[[[YY]YY]MM]DD]hh]mm[.ss]
'date TIME' form accepts MMDDhhmm[[YY]YY][.ss] instead

可能なオプションは次のとおりです。

  • BusyBox特殊-Dキー(たとえば)を使用すると、Coreutilsbusybox date -D +10daysに似た時間表現のサポートが拡張されます。date -dCoreutilsはこのオプションを認識しませんdate
  • 両方の実装でサポートされているBusyBox構文を使用してください。
  • インストールするコアツールDockerコンテナにあります。
  • Coreutilsで既存のコンテナを使用します。

おすすめ記事