Skip to content

Commit 5a7fac7

Browse files
committed
docker support
1 parent a1c37ec commit 5a7fac7

File tree

4 files changed

+62
-0
lines changed

4 files changed

+62
-0
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
.DS_Store
2+
.vscode

Dockerfile

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
ARG IMAGE=intersystems/iris:2019.1.0S.111.0
2+
ARG IMAGE=store/intersystems/iris:2019.1.0.510.0-community
3+
FROM $IMAGE
4+
5+
WORKDIR /opt/app
6+
7+
COPY ./Installer.cls ./
8+
COPY ./src/cls ./src/
9+
10+
RUN iris start $ISC_PACKAGE_INSTANCENAME quietly EmergencyId=sys,sys && \
11+
/bin/echo -e "sys\nsys\n" \
12+
" Do ##class(Security.Users).UnExpireUserPasswords(\"*\")\n" \
13+
" Do ##class(Security.Users).AddRoles(\"admin\", \"%ALL\")\n" \
14+
" Do \$system.OBJ.Load(\"/opt/app/Installer.cls\",\"ck\")\n" \
15+
" Set sc = ##class(App.Installer).setup(, 3)\n" \
16+
" If 'sc do \$zu(4, \$JOB, 1)\n" \
17+
" halt" \
18+
| iris session $ISC_PACKAGE_INSTANCENAME && \
19+
/bin/echo -e "sys\nsys\n" \
20+
| iris stop $ISC_PACKAGE_INSTANCENAME quietly
21+
22+
CMD [ "-l", "/usr/irissys/mgr/messages.log" ]

Installer.cls

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
Class App.Installer
2+
{
3+
4+
XData MyInstall [ XMLNamespace = INSTALLER ]
5+
{
6+
<Manifest>
7+
<Default Name="NAMESPACE" Value="OSCRIPT"/>
8+
<Default Name="DBNAME" Value="OSCRIPT"/>
9+
<Default Name="APPPATH" Dir="/opt/app/" />
10+
<Default Name="SOURCESPATH" Dir="${APPPATH}src" />
11+
<Default Name="RESOURCE" Value="%DB_${DBNAME}" />
12+
13+
<Namespace Name="${NAMESPACE}" Code="${DBNAME}-CODE" Data="${DBNAME}-DATA" Create="yes" Ensemble="0">
14+
<Configuration>
15+
<Database Name="${DBNAME}-CODE" Dir="${APPPATH}${DBNAME}-CODE" Create="yes" Resource="${RESOURCE}"/>
16+
<Database Name="${DBNAME}-DATA" Dir="${APPPATH}${DBNAME}-DATA" Create="yes" Resource="${RESOURCE}"/>
17+
</Configuration>
18+
19+
<Import File="${SOURCESPATH}" Recurse="1"/>
20+
</Namespace>
21+
22+
</Manifest>
23+
}
24+
25+
ClassMethod setup(ByRef pVars, pLogLevel As %Integer = 3, pInstaller As %Installer.Installer, pLogger As %Installer.AbstractLogger) As %Status [ CodeMode = objectgenerator, Internal ]
26+
{
27+
Quit ##class(%Installer.Manifest).%Generate(%compiledclass, %code, "MyInstall")
28+
}
29+
30+
}

docker-compose.yml

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
version: '2.4'
2+
services:
3+
iris:
4+
build: .
5+
restart: always
6+
ports:
7+
- 52773:52773
8+
volumes:
9+
- ~/iris.key:/usr/irissys/mgr/iris.key

0 commit comments

Comments
 (0)