Tomohiro Iwamoto · 10月 23, 2020 記事へ

ご丁寧にありがとうございます。

試しに、ご紹介した方法でnginxに自己証明書を登録してiPhoneのSafariから管理ポータルにhttpsでアクセスしてみたら、セキュリティ警告の後、延々とリロードを繰り返すだけで、先に進みませんでした。自前の認証局を立てる方法(./setup.sh実行)で作成したら表示されました。何か関係ありそうですか?

ところで、iPhoneって一度受け入れた「オレオレ」を削除する方法が無いんですね...。ネットを見ていると、昔はできたけれどとか、ネットワーク設定をリセットしましょう、しか見当たりませんでした。

Tomohiro Iwamoto · 5月 19, 2021 記事へ

Ohataさん、情報共有ありがとうございます。

Codebuild固有の、という事ではないのですが、IRISのイメージは
https://docs.docker.com/develop/develop-images/dockerfile_best-practice…
こちらに従い、ビルド時の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/…

もし、なんらかの理由で実行時にrootによるアクセスが必要になる場合は、Docker CLIであれば下記が使用できます。

$ docker exec -ti -u root containerId whoami
root
Tomohiro Iwamoto · 5月 20, 2021 記事へ

方法を紹介しておいて、何なのですが...こちらの記事に書いたのですが、Kubernetesの同類のコマンドであるkubectl execには、(今のところ?)このユーザ指定の機能がありません。ブログで見かけるようなdockerのCLI経由でのアクセスも、V1.23以降はできなくなる(Kubernetesでのdocker使用が廃止される)そうなので、もし、将来、運用もコンテナで...という事をお考えでしたら、あまりこの機能に依存しすぎるのは避けておいたほうが無難かもしれません。

CircleCI,Gitlab, GitHub Actionsあたりは例があるのですが、AWS CodeBuildはなぜか見かけません。
YAMLを共有いだだければ、いろんなアイデアが集まるかもしれませんよ?wink
 

Tomohiro Iwamoto · 2月 2, 2022 記事へ

Ohataさん

こんにちは。

$ZTIMEZONEを使えるかもしれません。

SAMPLES>w $ZTIMEZONE
-540

SELECT DATEADD(MI,$ZTIMEZONE,'2022-01-26 00:00:01') 

Expression_1
2022-01-25 15:00:01
Tomohiro Iwamoto · 12月 8, 2023 記事へ

Ohataさん

IRIS 2023.1.2を使っていますのでどこかで修正されたのかしれませんが、下記のようなOnAfterSave(内容はあまり気になさらずに...)でimportを実行してみたら下記のように保存されていました。
settings.jsonのusernameを書き換えれば、保存されるユーザ名も連動して変わりました。

USER>zw^IWA^IWA=6^IWA(1)="SuperUser"^IWA(2)="SuperUser"^IWA(3)="_SYSTEM"^IWA(4)="_SYSTEM"^IWA(5)="SuperUser"^IWA(6)="SuperUser

Method OnAfterSave(InternalName As %String, Object As %RegisteredObject = {$$$NULLOREF}) As %Status
{
	if ..Debug Write "Method 'OnAfterSave' InternalName:"_InternalName_" Object: "_Object,!
	//DBへの保存は成功させたいのでOKを返す
	If '..IsInitialized  Quit $$$OK

	//default projectは保存しない
	If $E(InternalName,1,$L($$$DEFAULTPRJNAME))=$$$DEFAULTPRJNAME {
		Write $$$MSGNODEFAULTPRJ,!
		Quit $$$OK
	}	

	Set path=..LocalWorkspaceRoot_..GetExtraPath()
	Set ..ExternalName=##class(%ZScc.Utils).ExportSingleItem(InternalName,path,..Debug)
	Set ^IWA($INCREMENT(^IWA))=$USERNAME
	Set ^IWA($INCREMENT(^IWA))=..Username

	Quit $$$OK
}