Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter
- CitrineOS core extracted (CSMS OCPP 2.0.1) - OpenOCPP extracted (firmware OCPP 1.6J/2.0.1) - ShapeShifter library installed (pip install -e) - ShapeShifter specification extracted - EVerest extracted TODO updated with progress
This commit is contained in:
30
tools/EVerest-main/applications/containers/steve/Dockerfile
Normal file
30
tools/EVerest-main/applications/containers/steve/Dockerfile
Normal file
@@ -0,0 +1,30 @@
|
||||
FROM maven:3.6.1-jdk-11
|
||||
|
||||
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
|
||||
|
||||
WORKDIR /steve
|
||||
|
||||
ENV DOCKERIZE_VERSION v0.6.1
|
||||
RUN wget --no-verbose https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
|
||||
&& tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
|
||||
&& rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz
|
||||
|
||||
RUN wget -qO- https://github.com/steve-community/steve/archive/steve-3.6.0.tar.gz | tar xz --strip-components=1
|
||||
COPY main.properties src/main/resources/config/docker
|
||||
COPY init.sh .
|
||||
COPY keystore.jks .
|
||||
|
||||
ARG TARGETARCH
|
||||
COPY entrypoint_wrapper.sh /entrypoint_wrapper.sh
|
||||
RUN if [ ${TARGETARCH} != "amd64" ]; then \
|
||||
ln -s /usr/local/bin/mvn-entrypoint.sh /wrapped_entrypoint.sh; \
|
||||
cp /entrypoint_wrapper.sh /entrypoint.sh; \
|
||||
else \
|
||||
ln -s /usr/local/bin/mvn-entrypoint.sh /entrypoint.sh; \
|
||||
fi; \
|
||||
rm /entrypoint_wrapper.sh
|
||||
ENTRYPOINT [ "/entrypoint.sh" ]
|
||||
CMD /steve/init.sh
|
||||
|
||||
|
||||
|
||||
37
tools/EVerest-main/applications/containers/steve/entrypoint_wrapper.sh
Executable file
37
tools/EVerest-main/applications/containers/steve/entrypoint_wrapper.sh
Executable file
@@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ---------------------------------------------
|
||||
# Architecture Warning Wrapper Script
|
||||
#
|
||||
# This script is used as an entrypoint wrapper to emit a warning
|
||||
# when the container is not running on the officially supported
|
||||
# amd64 (x86_64) architecture.
|
||||
#
|
||||
# It checks for the presence of a wrapped entrypoint script
|
||||
# (/wrapped_entrypoint.sh) and executes it if found; otherwise,
|
||||
# it falls back to executing the provided command directly.
|
||||
#
|
||||
# The warning is shown both before and after the wrapped command
|
||||
# to ensure visibility.
|
||||
# ---------------------------------------------
|
||||
|
||||
function print_warning {
|
||||
echo -e "\033[0;31m"
|
||||
echo "-------------------------------------------------------------"
|
||||
echo "⚠️ WARNING: Unsupported Architecture Detected"
|
||||
echo
|
||||
echo "This Docker image is not running on the amd64 (x86_64) architecture."
|
||||
echo "It is recommended to use the amd64-based image for full compatibility."
|
||||
echo "Other architectures are not officially supported and may cause issues."
|
||||
echo
|
||||
echo "-------------------------------------------------------------"
|
||||
echo -e "\033[0m"
|
||||
}
|
||||
|
||||
print_warning
|
||||
|
||||
if [ -f /wrapped_entrypoint.sh ]; then
|
||||
exec /wrapped_entrypoint.sh "$@"
|
||||
else
|
||||
exec "$@"
|
||||
fi
|
||||
10
tools/EVerest-main/applications/containers/steve/init.sh
Executable file
10
tools/EVerest-main/applications/containers/steve/init.sh
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
set -e # exit on any error
|
||||
dockerize -wait tcp://ocpp-db:3306 -timeout 60s
|
||||
|
||||
if [ ! -f ".buildsuccess" ]; then
|
||||
mvn clean package -Pdocker -Djdk.tls.client.protocols="TLSv1,TLSv1.1,TLSv1.2"
|
||||
touch .buildsuccess
|
||||
fi
|
||||
|
||||
java -jar target/steve.jar
|
||||
BIN
tools/EVerest-main/applications/containers/steve/keystore.jks
Normal file
BIN
tools/EVerest-main/applications/containers/steve/keystore.jks
Normal file
Binary file not shown.
@@ -0,0 +1,57 @@
|
||||
# Just to be backwards compatible with previous versions, this is set to "steve",
|
||||
# since there might be already configured chargepoints expecting the older path.
|
||||
# Otherwise, might as well be changed to something else or be left empty.
|
||||
#
|
||||
context.path = steve
|
||||
|
||||
# Database configuration
|
||||
#
|
||||
db.ip = ocpp-db
|
||||
db.port = 3306
|
||||
db.schema = ocpp-db
|
||||
db.user = ocpp
|
||||
db.password = ocpp
|
||||
|
||||
# Credentials for Web interface access
|
||||
#
|
||||
auth.user = admin
|
||||
auth.password = 1234
|
||||
|
||||
# Jetty configuration
|
||||
#
|
||||
server.host = 0.0.0.0
|
||||
server.gzip.enabled = false
|
||||
|
||||
# Jetty HTTP configuration
|
||||
#
|
||||
http.enabled = true
|
||||
http.port = 8180
|
||||
|
||||
# Jetty HTTPS configuration
|
||||
#
|
||||
https.enabled = true
|
||||
https.port = 8443
|
||||
keystore.path = /steve/keystore.jks
|
||||
keystore.password = 123456
|
||||
|
||||
# When the WebSocket/Json charge point opens more than one WebSocket connection,
|
||||
# we need a mechanism/strategy to select one of them for outgoing requests.
|
||||
# For allowed values see de.rwth.idsg.steve.ocpp.ws.custom.WsSessionSelectStrategyEnum.
|
||||
#
|
||||
ws.session.select.strategy = ALWAYS_LAST
|
||||
|
||||
# if BootNotification messages arrive (SOAP) or WebSocket connection attempts are made (JSON) from unknown charging
|
||||
# stations, we reject these charging stations, because stations with these chargeBoxIds were NOT inserted into database
|
||||
# beforehand. by setting this property to true, this behaviour can be modified to automatically insert unknown
|
||||
# stations into database and accept their requests.
|
||||
#
|
||||
# CAUTION: setting this property to true is very dangerous, because we will accept EVERY BootNotification or WebSocket
|
||||
# connection attempt from ANY sender as long as the sender knows the URL and sends a valid message.
|
||||
#
|
||||
auto.register.unknown.stations = false
|
||||
|
||||
### DO NOT MODIFY ###
|
||||
steve.version = ${project.version}
|
||||
git.describe = ${git.commit.id.describe}
|
||||
db.sql.logging = false
|
||||
profile = prod
|
||||
Reference in New Issue
Block a user