Skip to content

Commit 6044148

Browse files
Merge pull request #6 from CraigRegester:CraigRegester/issue3
add docker support to ease support and collaboration
2 parents fd79d4c + c8a8324 commit 6044148

File tree

5 files changed

+98
-4
lines changed

5 files changed

+98
-4
lines changed

.vscode/settings.json

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,20 @@
11
{
2+
"files.associations": {
3+
"Dockerfile*": "dockerfile",
4+
"iris.script": "objectscript"
5+
},
26
"objectscript.conn": {
3-
"server": "dbsi4h",
4-
"ns": "FITLIB",
5-
"active": true
7+
"active": true,
8+
"ns": "USER",
9+
"username": "SuperUser",
10+
"password": "SYS",
11+
"docker-compose": {
12+
"service": "iris",
13+
"internalPort": 52773
14+
},
15+
"links": {
16+
"UnitTest Portal": "${serverUrl}/csp/sys/%25UnitTest.Portal.Home.cls?$NAMESPACE=FITLIB",
17+
"Production": "${serverUrl}/csp/fitlib/EnsPortal.ProductionConfig.zen?PRODUCTION=FITLIB.REST.DemoProduction"
18+
}
619
}
720
}

Dockerfile

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
ARG IMAGE=intersystemsdc/irishealth-community
2+
ARG IMAGE=intersystemsdc/iris-community
3+
FROM $IMAGE
4+
5+
6+
USER root
7+
## add git
8+
RUN apt update && apt-get -y install git
9+
10+
USER irisowner
11+
WORKDIR /home/irisowner/irisbuild
12+
ARG TESTS=0
13+
ARG MODULE="fitlib-rest-framework"
14+
ARG NAMESPACE="FITLIB"
15+
16+
RUN --mount=type=bind,src=.,dst=. \
17+
iris start IRIS && \
18+
iris session IRIS < iris.script && \
19+
([ $TESTS -eq 0 ] || iris session iris -U $NAMESPACE "##class(%ZPM.PackageManager).Shell(\"test $MODULE -v -only\",1,1)") && \
20+
iris stop IRIS quietly

IRIS.code-workspace

100644100755
Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,23 @@
44
"path": "."
55
}
66
],
7-
"settings": {}
7+
"settings": {
8+
"objectscript.autoShowTerminal": true,
9+
"objectscript.explorer.alwaysShowServerCopy": true,
10+
"objectscript.export": {
11+
"folder": "src",
12+
"addCategory": true,
13+
"map": {},
14+
"atelier": true,
15+
"generated": false,
16+
"filter": "",
17+
"exactFilter": "",
18+
"category": "*",
19+
"noStorage": false,
20+
"dontExportIfNoChanges": false,
21+
"maxConcurrentConnections": 0,
22+
"mapped": true
23+
},
24+
"objectscript.multilineMethodArgs": true
25+
}
826
}

Installer.cls

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
Class App.Installer
2+
{
3+
4+
XData setup
5+
{
6+
<Manifest>
7+
<Default Name="Namespace" Value="FITLIB"/>
8+
<Default Name="database" Value="fitlib"/>
9+
10+
<Namespace Name="${Namespace}" Code="${Namespace}" Data="${Namespace}" Create="yes" Ensemble="1">
11+
12+
<Configuration>
13+
<Database Name="${Namespace}" Dir="${mgrdir}${database}/data" Create="yes" Resource="%DB_${Namespace}"/>
14+
</Configuration>
15+
</Namespace>
16+
</Manifest>
17+
}
18+
19+
ClassMethod setup(
20+
ByRef pVars,
21+
pLogLevel As %Integer = 3,
22+
pInstaller As %Installer.Installer,
23+
pLogger As %Installer.AbstractLogger) As %Status [ CodeMode = objectgenerator, Internal ]
24+
{
25+
#; Let XGL document generate code for this method.
26+
Quit ##class(%Installer.Manifest).%Generate(%compiledclass, %code, "setup")
27+
}
28+
29+
}

docker-compose.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
version: '3.6'
2+
services:
3+
iris:
4+
build:
5+
context: .
6+
dockerfile: Dockerfile
7+
restart: always
8+
command: --check-caps false
9+
ports:
10+
- 1972
11+
- 52773
12+
- 53773
13+
volumes:
14+
- ./:/irisrun/repo

0 commit comments

Comments
 (0)