Skip to content

Commit 3af82de

Browse files
author
Slyke
committed
Merge branch 'master' into experimental
2 parents b6bc82e + e44b6c0 commit 3af82de

File tree

11 files changed

+572
-139
lines changed

11 files changed

+572
-139
lines changed

.internal/templates/services/adguardhome/build.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,14 @@ const ServiceBuilder = ({
77
const serviceName = 'adguardhome';
88

99
const {
10+
setImageTag,
1011
setModifiedPorts,
1112
setLoggingState,
1213
setNetworkMode,
1314
setNetworks,
14-
setDevices,
15-
setEnvironmentVariables
15+
setVolumes,
16+
setEnvironmentVariables,
17+
setDevices
1618
} = require('../../../src/utils/commonCompileLogic');
1719

1820
const {
@@ -54,7 +56,7 @@ if [[ ! -d ./volumes/adguardhome/confdir ]]; then
5456
HAS_ERROR="true"
5557
fi
5658
57-
if [[ "$HAS_ERROR" == "true ]]; then
59+
if [[ "$HAS_ERROR" == "true" ]]; then
5860
sleep 1
5961
fi
6062
`;
@@ -69,10 +71,12 @@ fi
6971
console.info(`ServiceBuilder:compile() - '${serviceName}' started`);
7072

7173
const compileResults = {
74+
modifiedImage: setImageTag({ buildTemplate: outputTemplateJson, buildOptions, serviceName }),
7275
modifiedPorts: setModifiedPorts({ buildTemplate: outputTemplateJson, buildOptions, serviceName }),
7376
modifiedLogging: setLoggingState({ buildTemplate: outputTemplateJson, buildOptions, serviceName }),
7477
modifiedNetworkMode: setNetworkMode({ buildTemplate: outputTemplateJson, buildOptions, serviceName }),
7578
modifiedNetworks: setNetworks({ buildTemplate: outputTemplateJson, buildOptions, serviceName }),
79+
modifiedVolumes: setVolumes({ buildTemplate: outputTemplateJson, buildOptions, serviceName }),
7680
modifiedEnvironment: setEnvironmentVariables({ buildTemplate: outputTemplateJson, buildOptions, serviceName }),
7781
modifiedDevices: setDevices({ buildTemplate: outputTemplateJson, buildOptions, serviceName })
7882
};

.internal/templates/services/mosquitto/build.js

Lines changed: 50 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,14 @@ const ServiceBuilder = ({
88
const serviceName = 'mosquitto';
99

1010
const {
11+
setImageTag,
1112
setModifiedPorts,
1213
setLoggingState,
1314
setNetworkMode,
14-
setNetworks
15+
setNetworks,
16+
setVolumes,
17+
setEnvironmentVariables,
18+
setDevices
1519
} = require('../../../src/utils/commonCompileLogic');
1620

1721
const {
@@ -34,7 +38,7 @@ const ServiceBuilder = ({
3438

3539
const checkServiceFilesCopied = () => {
3640
return `
37-
if [[ ! -f ./services/mosquitto/mosquitto.conf ]]; then
41+
if [[ ! -f ./services/mosquitto/config/mosquitto.conf ]]; then
3842
echo "Mosquitto config file is missing!"
3943
sleep 2
4044
fi
@@ -44,6 +48,7 @@ fi
4448
const createVolumesDirectory = () => {
4549
return `
4650
mkdir -p ./volumes/mosquitto/data
51+
mkdir -p ./volumes/mosquitto/config
4752
mkdir -p ./volumes/mosquitto/pwfile
4853
mkdir -p ./volumes/mosquitto/log
4954
`;
@@ -57,8 +62,8 @@ if [[ ! -d ./volumes/mosquitto/data ]]; then
5762
HAS_ERROR="true"
5863
fi
5964
60-
if [[ ! -d ./volumes/mosquitto/pwfile ]]; then
61-
echo "Mosquitto pwfile directory is missing!"
65+
if [[ ! -d ./volumes/mosquitto/config ]]; then
66+
echo "Mosquitto config directory is missing!"
6267
HAS_ERROR="true"
6368
fi
6469
@@ -67,26 +72,18 @@ if [[ ! -d ./volumes/mosquitto/log ]]; then
6772
HAS_ERROR="true"
6873
fi
6974
70-
if [[ "$HAS_ERROR" == "true ]]; then
75+
if [[ ! -d ./volumes/mosquitto/pwfile ]]; then
76+
echo "Mosquitto pwfile directory is missing!"
77+
HAS_ERROR="true"
78+
fi
79+
80+
if [[ "$HAS_ERROR" == "true" ]]; then
7181
echo "Errors were detected when setting up Mosquitto"
7282
sleep 1
7383
fi
7484
`;
7585
};
7686

77-
const setupVolumePermissions = (setUser1883) => {
78-
if (setUser1883) {
79-
return `
80-
echo "Updating mosquitto permissions:"
81-
echo " chown -R 1883:1883 ./volumes/mosquitto/"
82-
sudo chown -R 1883:1883 ./volumes/mosquitto/
83-
`;
84-
}
85-
return `
86-
echo "Mosquitto volume permissions not changed."
87-
`;
88-
}
89-
9087
retr.compile = ({
9188
outputTemplateJson,
9289
buildOptions,
@@ -96,10 +93,14 @@ echo "Mosquitto volume permissions not changed."
9693
console.info(`ServiceBuilder:compile() - '${serviceName}' started`);
9794

9895
const compileResults = {
96+
modifiedImage: setImageTag({ buildTemplate: outputTemplateJson, buildOptions, serviceName }),
9997
modifiedPorts: setModifiedPorts({ buildTemplate: outputTemplateJson, buildOptions, serviceName }),
10098
modifiedLogging: setLoggingState({ buildTemplate: outputTemplateJson, buildOptions, serviceName }),
10199
modifiedNetworkMode: setNetworkMode({ buildTemplate: outputTemplateJson, buildOptions, serviceName }),
102-
modifiedNetworks: setNetworks({ buildTemplate: outputTemplateJson, buildOptions, serviceName })
100+
modifiedNetworks: setNetworks({ buildTemplate: outputTemplateJson, buildOptions, serviceName }),
101+
modifiedVolumes: setVolumes({ buildTemplate: outputTemplateJson, buildOptions, serviceName }),
102+
modifiedEnvironment: setEnvironmentVariables({ buildTemplate: outputTemplateJson, buildOptions, serviceName }),
103+
modifiedDevices: setDevices({ buildTemplate: outputTemplateJson, buildOptions, serviceName })
103104
};
104105
console.info(`ServiceBuilder:compile() - '${serviceName}' Results:`, compileResults);
105106

@@ -171,13 +172,41 @@ echo "Mosquitto volume permissions not changed."
171172
return new Promise((resolve, reject) => {
172173
try {
173174
console.info(`ServiceBuilder:build() - '${serviceName}' started`);
174-
const mosquittoConfFilePath = path.join(__dirname, settings.paths.serviceFiles, 'mosquitto.conf');
175+
const mosquittoConfFilePath = path.join(__dirname, settings.paths.serviceFiles, 'config', 'mosquitto.conf');
175176
zipList.push({
176177
fullPath: mosquittoConfFilePath,
177-
zipName: '/services/mosquitto/mosquitto.conf'
178+
zipName: '/services/mosquitto/config/mosquitto.conf'
178179
});
179180
console.debug(`ServiceBuilder:build() - '${serviceName}' Added '${mosquittoConfFilePath}' to zip`);
180181

182+
const mosquittoAclFilePath = path.join(__dirname, settings.paths.serviceFiles, 'config', 'filter.acl');
183+
zipList.push({
184+
fullPath: mosquittoAclFilePath,
185+
zipName: '/services/mosquitto/config/filter.acl'
186+
});
187+
console.debug(`ServiceBuilder:build() - '${serviceName}' Added '${mosquittoAclFilePath}' to zip`);
188+
189+
const mosquittoPwFilePath = path.join(__dirname, settings.paths.serviceFiles, 'pwfile', 'pwfile');
190+
zipList.push({
191+
fullPath: mosquittoPwFilePath,
192+
zipName: '/services/mosquitto/pwfile/pwfile'
193+
});
194+
console.debug(`ServiceBuilder:build() - '${serviceName}' Added '${mosquittoPwFilePath}' to zip`);
195+
196+
const mosquittoDockerFilePath = path.join(__dirname, settings.paths.buildFiles, 'Dockerfile');
197+
zipList.push({
198+
fullPath: mosquittoDockerFilePath,
199+
zipName: '/services/mosquitto/Dockerfile'
200+
});
201+
console.debug(`ServiceBuilder:build() - '${serviceName}' Added '${mosquittoDockerFilePath}' to zip`);
202+
203+
const mosquittoDockerEntryPointFilePath = path.join(__dirname, settings.paths.buildFiles, 'docker-entrypoint.sh');
204+
zipList.push({
205+
fullPath: mosquittoDockerEntryPointFilePath,
206+
zipName: '/services/mosquitto/docker-entrypoint.sh'
207+
});
208+
console.debug(`ServiceBuilder:build() - '${serviceName}' Added '${mosquittoDockerEntryPointFilePath}' to zip`);
209+
181210
postbuildScripts.push({
182211
serviceName,
183212
comment: 'Ensure required service files exist for launch',
@@ -199,13 +228,6 @@ echo "Mosquitto volume permissions not changed."
199228
code: checkVolumesDirectory()
200229
});
201230

202-
postbuildScripts.push({
203-
serviceName,
204-
comment: 'Setup correct permissions for volume',
205-
multilineComment: null,
206-
code: setupVolumePermissions(true)
207-
});
208-
209231
console.info(`ServiceBuilder:build() - '${serviceName}' completed`);
210232
return resolve({ type: 'service' });
211233
} catch (err) {
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Download base image
2+
FROM eclipse-mosquitto:latest
3+
4+
# Add support tools
5+
RUN apk update && apk add --no-cache rsync tzdata
6+
7+
# where IOTstack template files are stored
8+
ENV MOSQUITTO_IOTSTACK_DEFAULTS="/iotstack_defaults"
9+
10+
# copy template files to image
11+
COPY --chown=mosquitto:mosquitto . /${MOSQUITTO_IOTSTACK_DEFAULTS}
12+
13+
# replace the docker entry-point script
14+
ENV IOTSTACK_ENTRY_POINT="docker-entrypoint.sh"
15+
COPY ${IOTSTACK_ENTRY_POINT} /${IOTSTACK_ENTRY_POINT}
16+
RUN chmod 755 /${IOTSTACK_ENTRY_POINT}
17+
ENV IOTSTACK_ENTRY_POINT=
18+
19+
# IOTstack also declares these paths
20+
VOLUME ["/mosquitto/config", "/mosquitto/pwfile"]
21+
22+
# EOF

.internal/templates/services/mosquitto/buildFiles/directoryfix.sh

Lines changed: 0 additions & 18 deletions
This file was deleted.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/bin/ash
2+
set -e
3+
4+
# Set permissions
5+
user="$(id -u)"
6+
if [ "$user" = '0' -a -d "/mosquitto" ]; then
7+
rsync -arp --ignore-existing /${MOSQUITTO_IOTSTACK_DEFAULTS}/ "/mosquitto"
8+
chown -R mosquitto:mosquitto /mosquitto
9+
fi
10+
11+
exec "$@"
12+

.internal/templates/services/mosquitto/serviceFiles/pwfile/pwfile

Whitespace-only changes.

.internal/templates/services/mosquitto/template.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
mosquitto:
22
container_name: mosquitto
3-
image: eclipse-mosquitto
3+
build: ./services/mosquitto/.
44
restart: unless-stopped
5-
user: "1883"
5+
environment:
6+
- TZ=Etc/UTC
67
ports:
78
- "1883:1883"
89
volumes:
10+
- ./volumes/mosquitto/config:/mosquitto/config
911
- ./volumes/mosquitto/data:/mosquitto/data
1012
- ./volumes/mosquitto/log:/mosquitto/log
1113
- ./volumes/mosquitto/pwfile:/mosquitto/pwfile
12-
- ./services/mosquitto:/mosquitto/config:ro
1314
networks:
1415
- iotstack_nw
1516
logging:

.internal/templates/services/nextcloud/build.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@ const ServiceBuilder = ({
1010
const { byName } = require('../../../src/utils/interpolate');
1111

1212
const {
13+
setImageTag,
1314
setModifiedPorts,
1415
setLoggingState,
1516
setNetworkMode,
1617
setNetworks,
17-
setDevices,
18-
setEnvironmentVariables
18+
setVolumes,
19+
setEnvironmentVariables,
20+
setDevices
1921
} = require('../../../src/utils/commonCompileLogic');
2022

2123
const {
@@ -57,7 +59,7 @@ if [[ ! -d ./volumes/nextcloud/db ]]; then
5759
HAS_ERROR="true"
5860
fi
5961
60-
if [[ "$HAS_ERROR" == "true ]]; then
62+
if [[ "$HAS_ERROR" == "true" ]]; then
6163
sleep 1
6264
fi
6365
`;
@@ -72,10 +74,12 @@ fi
7274
console.info(`ServiceBuilder:compile() - '${serviceName}', 'nextcloud_db' started`);
7375

7476
const compileResults = {
77+
modifiedImage: setImageTag({ buildTemplate: outputTemplateJson, buildOptions, serviceName }),
7578
modifiedPorts: setModifiedPorts({ buildTemplate: outputTemplateJson, buildOptions, serviceName }),
7679
modifiedLogging: setLoggingState({ buildTemplate: outputTemplateJson, buildOptions, serviceName }),
7780
modifiedNetworkMode: setNetworkMode({ buildTemplate: outputTemplateJson, buildOptions, serviceName }),
7881
modifiedNetworks: setNetworks({ buildTemplate: outputTemplateJson, buildOptions, serviceName }),
82+
modifiedVolumes: setVolumes({ buildTemplate: outputTemplateJson, buildOptions, serviceName }),
7983
modifiedEnvironment: setEnvironmentVariables({ buildTemplate: outputTemplateJson, buildOptions, serviceName }),
8084
modifiedDevices: setDevices({ buildTemplate: outputTemplateJson, buildOptions, serviceName })
8185
};

0 commit comments

Comments
 (0)