File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11# jore4-tools
2+
23Tools which are commonly used by other JORE4 projects
4+
5+ ## Tools for Docker
6+
7+ ### read-secrets.sh
8+
9+ Reads docker secrets into environment variables. Secrets' filenames are
10+ transformed into environment variable names with \_ characters replacing
11+ non-alphanumeric characters.
12+
13+ Parameters:
14+
15+ Reads secrets' bash path from ` SECRET_STORE_BASE_PATH ` env variable
16+
17+ Example setup:
18+
19+ ```
20+ $ cat secrets/foo1
21+ bar1
22+ $ cat secrets/foo2-blabla
23+ bar2
24+ $ cat secrets/foo3.lol
25+ bar3.lolo
26+ ```
27+
28+ Usage:
29+
30+ ```
31+ $ SECRET_STORE_BASE_PATH=secrets source read-secrets.sh
32+ $ printenv
33+ [...]
34+ FOO1=bar1
35+ FOO2_BLABLA=bar2
36+ FOO3_LOL=bar3.lolo
37+ ```
38+
39+ Usage within Dockerfile:
40+
41+ ```
42+ # download script for reading docker secrets
43+ RUN curl -o /tmp/read-secrets.sh "https://raw.githubusercontent.com/HSLdevcom/jore4-tools/main/docker/read-secrets.sh"
44+
45+ # read docker secrets into environment variables and run application
46+ CMD /bin/bash -c "source /tmp/read-secrets.sh && java -jar /.../xxx.jar"
47+ ```
Original file line number Diff line number Diff line change 1+ #! /bin/sh
2+
3+ set -eu
4+
5+ # Reads docker secrets into environment variables.
6+ # Secrets' filenames are transformed into environment variable names with _ characters replacing non-alphanumeric characters.
7+ #
8+ # parameters:
9+ # reads secrets' bash path from SECRET_STORE_BASE_PATH env variable
10+ #
11+ # example setup:
12+ # $ cat secrets/foo1
13+ # bar1
14+ # $ cat secrets/foo2-blabla
15+ # bar2
16+ # $ cat secrets/foo3.lol
17+ # bar3.lolo
18+ #
19+ # usage:
20+ # $ SECRET_STORE_BASE_PATH=secrets source read-secrets.sh
21+ # $ printenv
22+ # [...]
23+ # FOO1=bar1
24+ # FOO2_BLABLA=bar2
25+ # FOO3_LOL=bar3.lolo
26+
27+ # read docker secrets into environment variables
28+ SECRET_STORE_BASE_PATH=" ${SECRET_STORE_BASE_PATH:-/ run/ secrets} "
29+ for SECRET_FILENAME in $( ls " $SECRET_STORE_BASE_PATH " ) ;
30+ do
31+ # replace non-alphanumeric characters with _ and convert to uppercase
32+ VAR_NAME=$( echo $SECRET_FILENAME | sed -E ' s/[^a-zA-Z0-9]+/_/g' | tr a-z A-Z)
33+ VAR_VALUE=$( cat " $SECRET_STORE_BASE_PATH /$SECRET_FILENAME " )
34+ export " $VAR_NAME " =" $VAR_VALUE "
35+ echo " Found secret '$SECRET_FILENAME ', exported it as '$VAR_NAME ' environment variable."
36+ done
You can’t perform that action at this time.
0 commit comments