方法を紹介しておいて、何なのですが...こちらの記事に書いたのですが、Kubernetesの同類のコマンドであるkubectl execには、(今のところ?)このユーザ指定の機能がありません。ブログで見かけるようなdockerのCLI経由でのアクセスも、V1.23以降はできなくなる(Kubernetesでのdocker使用が廃止される)そうなので、もし、将来、運用もコンテナで...という事をお考えでしたら、あまりこの機能に依存しすぎるのは避けておいたほうが無難かもしれません。
CircleCI,Gitlab, GitHub Actionsあたりは例があるのですが、AWS CodeBuildはなぜか見かけません。
YAMLを共有いだだければ、いろんなアイデアが集まるかもしれませんよ?
Ohataさん、情報共有ありがとうございます。
Codebuild固有の、という事ではないのですが、IRISのイメージは
https://docs.docker.com/develop/develop-images/dockerfile_best-practices...
こちらに従い、ビルド時のUSERはirisownerになっています。
$ docker history containers.intersystems.com/intersystems/iris:2020.1.0.215.0 | grep USER
<missing> 13 months ago /bin/sh -c #(nop) USER irisowner 0B
ですので、そのまま実行した場合は
$ docker run --rm -it --entrypoint whoami store/intersystems/iris-community:2020.1.0.215.0
irisowner
となります。
Dockerfile内にて、パッケージマネージャ(apt)の使用などのために
USER root
を実行されておられませんでしょうか?その場合、可能な限りは、最終的には
USER ${ISC_PACKAGE_MGRUSER}
(ISC_PACKAGE_MGRUSERの内容はirisownerです)
を実行しておくことをお勧めいたします。この方法でビルドされたイメージはsu -irisownerなしで、IRISにO/S認証でのログインが可能になります。下記は使用例です。
https://github.com/intersystems-community/objectscript-docker-template/b...
もし、なんらかの理由で実行時にrootによるアクセスが必要になる場合は、Docker CLIであれば下記が使用できます。
$ docker exec -ti -u root containerId whoami
root



Ohataさん
こんにちは。
$ZTIMEZONEを使えるかもしれません。
SAMPLES>w $ZTIMEZONE
-540
SELECT DATEADD(MI,$ZTIMEZONE,'2022-01-26 00:00:01')