Skip to content

Commit 94e4aea

Browse files
committed
Adjusted dockerfile. Created sops config file
1 parent fef5978 commit 94e4aea

File tree

4 files changed

+60
-14
lines changed

4 files changed

+60
-14
lines changed

Dockerfile

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,37 @@
1-
# Fetch the application jar from the target directory and rename it to application.jar
2-
FROM amazoncorretto:21-al2023-headless AS fetch
1+
# Build: docker build -t moresleep-app:latest .
2+
# Run: docker run --name moresleep-container -p 5000:5000 moresleep-app:latest
3+
# Check localhost:5000 and you should get a homepage
4+
# Stage 1: Build the application
5+
FROM maven:3.9.11-eclipse-temurin-21 AS build
6+
WORKDIR /app
7+
COPY pom.xml .
8+
COPY src ./src
9+
RUN mvn clean package -Dmaven.test.skip=true
310

4-
COPY target /target
5-
RUN mv /target/*-with-dependencies.jar /target/application.jar
11+
# Stage 2: Create the final runtime image
12+
FROM eclipse-temurin:21-jre-jammy AS final
613

14+
# Install SOPS
15+
RUN curl -L -o /usr/local/bin/sops https://github.com/getsops/sops/releases/download/v3.10.2/sops-v3.10.2.linux.amd64 && \
16+
chmod +x /usr/local/bin/sops
717

8-
# Actual image to run the application
9-
FROM amazoncorretto:21-al2023-headless
18+
# Install unzip and curl
19+
RUN apt-get update && \
20+
apt-get install -y curl unzip && \
21+
rm -rf /var/lib/apt/lists/*
1022

11-
EXPOSE 8081
23+
# Install AWS CLI v2
24+
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "/tmp/awscliv2.zip" && \
25+
unzip /tmp/awscliv2.zip -d /tmp && \
26+
/tmp/aws/install && \
27+
rm -rf /tmp/aws /tmp/awscliv2.zip
1228

13-
COPY --from=fetch /target/application.jar /work/application.jar
29+
WORKDIR /app
30+
COPY --from=build /app/target/cake-redux-0.3-SNAPSHOT-jar-with-dependencies.jar app.jar
31+
COPY ./config/.enc.prod.env /app/.enc.env
1432

15-
ENTRYPOINT ["java", "-jar", "/work/application.jar"]
33+
# Remove AWS profile from SOPS config to use container's AWS credentials
34+
RUN sed -i 's/sops_kms__list_0__map_aws_profile=javabin/sops_kms__list_0__map_aws_profile=/' /app/.enc.env
35+
36+
EXPOSE 5000
37+
ENTRYPOINT ["sops", "exec-env", ".enc.env", "java -jar app.jar"]

config/.enc.prod.env

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
cakeLocation=ENC[AES256_GCM,data:ioJyOZg6Fdm5m5XJ95UbfKIIdxUEi8mHLjHhFKDD,iv:v49r9/3pv/KE7nUZ+QbPyNSHgMijqe3nyufMMbW5cf8=,tag:MuFYsy920rbwyDlKzezYew==,type:str]
2+
noAuthMode=ENC[AES256_GCM,data:c5YaRjE=,iv:oK8ESqtGxExZ/E/acCfWmEGl9fMYkVNSz0Hf6uGw4cs=,tag:yzB0PIx7Fq3qqQnBPNYuHQ==,type:str]
3+
serverPort=ENC[AES256_GCM,data:gs/+mw==,iv:PY8p7I7tC7r/VnAOHcyj+pF6a6uRateyNpAIQudWjwU=,tag:PWxdGXnncrEFzSKGH+KdTA==,type:str]
4+
mailSenderImplementation=ENC[AES256_GCM,data:QdHQaYHcUio=,iv:SLMRY7H6Cq2sNFevKe3lIREiFXoq6RBXvVxiSYOfRLg=,tag:RILEScjC6+ulJ5s7xXc9Ow==,type:str]
5+
sendGridKey=ENC[AES256_GCM,data:/7dlTaGmOEzNMGhmAd8pmxZ0gFDmadqNlsbskYxGjYW8lZW52vEE9kmMQ8HTdWGrgwjBRJpj7PKe+fwlBaNQPp4Y8XT1,iv:M9sUzpBrq/kzU9hhWrVQHcC6hbkbAcV3slFlMO6CGeE=,tag:V9mg/39mqgOo/YBpNa1C9w==,type:str]
6+
sleepingPillBaseLocation=ENC[AES256_GCM,data:dB5qjKJM4aemBw8mTdPAkKVrWlgNiABPrJ0n857hSkA=,iv:6Qzo0HGMISA+tCUZo/UoKgDX/1jK/lpoNI1e1x9RBmE=,tag:0rfN9qD1XgQGWgj81Tilxg==,type:str]
7+
sleepingpillUser=ENC[AES256_GCM,data:auAdLw==,iv:zHGcdL9PcAMLnVRQ0OeGL2x/7vgldpils8F416yNPkM=,tag:NlUT99zZRbY8b069C3wxwQ==,type:str]
8+
sleepingpillPassword=ENC[AES256_GCM,data:7SrAyXo1Ccq56jne,iv:Rjmi2ec1i5YjgggdjnHC6PeQRe2ZPtHfrfMuK1/Aqy0=,tag:bpBy1RO66tlf+muZAb0wIw==,type:str]
9+
fullUsers=ENC[AES256_GCM,data:D/dGRu5SJa6m3hOQ8SQ=,iv:cLda1Q8zgmnxJWCCzFYYTWW0R5Af0FHrsC9UNs5COVI=,tag:3aykNSQ0X9cZqs5GdLS7qQ==,type:str]
10+
videoAdminPassword=ENC[AES256_GCM,data:X8KMwr6s6hAbyTVJ,iv:rt0zLvDMAR2B2rWn8EXg/CxNo2p93YTzzIkCQc76URs=,tag:us+CmdFZwQbvUQgMgZ0xpw==,type:str]
11+
videoAdminConference=ENC[AES256_GCM,data:Nmx+XQPUIVBolqEnXMRhdwxzyILRU68R3CoB90q3iCcQ0F13,iv:vyyjDX+Q4qBhovwooqcyqcUtUM5uZpNBpk8wAD/LtZY=,tag:dtW9rqe9CTpxgmlgaGNZQg==,type:str]
12+
slackAppId=ENC[AES256_GCM,data:UOwEd7gjr8Y7rzbDpq2z4gnH2KGGnK0=,iv:8x0xaJbzHwxkoz2qsEMYtDkLC3AWWvKEJnWStYGQTBQ=,tag:Q4EK4ywSAH84wJBVUEebEw==,type:str]
13+
slackClientSecret=ENC[AES256_GCM,data:kpZxC/tfuBC/5X7fdVFuWMFzPUviw7HrvY2TGEHv2tc=,iv:NCNBgrU2jtJa2LNyzi8RjALJZL25DqJcBr5A+gtGWuE=,tag:7Bdbi7JZaJXiZ6rrzgV7GQ==,type:str]
14+
slackAuthChannel=ENC[AES256_GCM,data:nOxmftisQY5a,iv:5e9RADRFSgLZsX7sUh1V7hVUNkz9n4ffKRdxaxJ64Xc=,tag:Tr0PaWzMlDsVnisTzXYN2w==,type:str]
15+
slackApiToken=ENC[AES256_GCM,data:nca+x4j7JwaQKfxDxgWZ1lOan2vGgZ7Uvw/ro0wF6ONmnvrU3F7a1iotbdLs/H5FZb/tZeHmmU5tkScM7FCr29G/fLuSWcc/,iv:ePPL8jEBHHvBGNhwQK3171XxtPQ6ddNaQHa82EH7kGc=,tag:2SyR2qCikFx+VDBL/RLKdg==,type:str]
16+
conferenceWednesday=ENC[AES256_GCM,data:lsoraE64rzSq0g==,iv:H/BpxrAO/WGrjXCaeOUZ90R0h+ITXndhTn3ikG/2Gz4=,tag:xiBTltsQDpTO1g8FgrxP5w==,type:str]
17+
sops_kms__list_0__map_arn=arn:aws:kms:eu-central-1:553637109631:key/a6a46dc7-d14e-4638-b3bb-b919aa251296
18+
sops_kms__list_0__map_aws_profile=javabin
19+
sops_kms__list_0__map_created_at=2025-10-04T07:26:47Z
20+
sops_kms__list_0__map_enc=AQICAHgZkjtcSytIpxYRtaElneeEBKhzfRCADUc3yHgqWJe8kwFe8g4OG6dzFCn8R2ias5zzAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMK5mQjczoXx6jhl0GAgEQgDu0XLIkQzN0xzMnk6Ughu/fLj/DOavqrPf93b7P+G88fvExdbTZcHmnR8Frl32fADpVEoR2E0QVSSBSwA==
21+
sops_lastmodified=2025-10-04T07:26:48Z
22+
sops_mac=ENC[AES256_GCM,data:/5I3Buq5tzxTrMvM/XOehqdL+ruYl/GggaRMDqUKlTH6Tb1FW/1qvPynegLaP+e00d/SHItuSrRgA/R0iZ+HDEO9LwxOGhCxswYeDgqMSXMOXUI9T+HNzrwIlZDILcu/xCU3M7O3tr2SlR3lHIUHvfdLpg9/x9Gsm7SGV7kYiEc=,iv:vwmBcU8cmTzuSZjp0Dz/lq6UmOpRsWZCizhFWsQPGIM=,tag:BnkxEnSThyW4ShWyyABrTQ==,type:str]
23+
sops_unencrypted_suffix=_unencrypted
24+
sops_version=3.10.2

src/main/java/no/javazone/cake/redux/Configuration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ private static String readConf(String prop, String env, String defaultValue) {
4949
private synchronized void loadProps() {
5050
Map<String,String> readProps = new HashMap<>();
5151
String filename = System.getProperty("cake-redux-config-file");
52-
if (!filename.equals("env-only")) {
52+
if (filename != null && !filename.equals("env-only")) {
5353
String config = readConfigFile(filename);
5454
for (String line : config.split("\n")) {
5555
if (line.startsWith("#")) {

src/main/java/no/javazone/cake/redux/WebServer.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ public WebServer(Integer port) {
2626
public static void main(String[] args) throws Exception {
2727
System.out.println("Starting cakeredux: " + Arrays.toString(args));
2828
try {
29-
if (args == null || args.length < 1) {
30-
System.out.println("Usage WebServer <Config file name> [war-file-path]");
31-
return;
29+
if (args != null && args.length > 0) {
30+
System.setProperty("cake-redux-config-file", args[0]);
31+
} else {
32+
System.out.println("No config file specified");
3233
}
3334

34-
System.setProperty("cake-redux-config-file", args[0]);
3535
new WebServer(getPort(8081)).start();
3636
} catch (Exception ex) {
3737
ex.printStackTrace();

0 commit comments

Comments
 (0)