diff --git a/notes_adding_suts.txt b/notes_adding_suts.txt index b2a13c790..ce8201176 100644 --- a/notes_adding_suts.txt +++ b/notes_adding_suts.txt @@ -139,4 +139,73 @@ As there are quite a few things to keep in mind, we list here the most important - If the SUT is a REST API, need to add its OpenAPI schema into "openapi-swagger" folder -- If REST APIs, must support BB experiments via Docker files. This done in files under "scripts/dockerize". \ No newline at end of file +- If REST APIs, must support BB experiments via Docker files. This done in files under "scripts/dockerize". + The entry point is "scripts/createDockerFiles.py": it reads "scripts/dockerize/data/sut.csv", and, for each SUT + marked with Dockerized=TRUE, it calls "scripts/dockerize/docker_generator.py". + For each such SUT, this generates 2 files under the "dockerfiles" folder (from the Jinja2 templates in + "scripts/dockerize/templates"): + 1) "NAME.dockerfile": the Docker image for the SUT itself, which copies "NAME-sut.jar" (and "jacocoagent.jar") + from the "dist" folder, and starts the SUT with the given JVM/input parameters. + This means "dist.py" must already handle the SUT (see previous point on Distribution). + 2) "NAME.yaml": a docker-compose file, including any extra service the SUT depends on (eg databases). + Note: the JDK version used to select the Docker base image is NOT in "sut.csv": it is read from the RUNTIME + column of "statistics/data.csv" (values like "JDK 8", "JDK 11", "JDK 17" and "JDK 21", mapped to Amazon Corretto + Alpine images). So, the entry in "statistics/data.csv" must be present and correct before generating the Docker files. + Note: the generated compose file also includes a "mitmproxy" service, which reverse-proxies (and logs) all the + HTTP traffic toward the SUT (whose service is named "sut-NAME"). It is mitmproxy, not the SUT, that exposes + port 8080 (overridable with ${HOST_PORT}) on the host. + Inside its container, the SUT MUST listen on port 8080 (this is hardcoded, eg in the mitmproxy configuration), + so use the SUT input parameters (eg "--server.port=8080") to enforce it. + + To add a new SUT, a new row must be added to "scripts/dockerize/data/sut.csv". Its columns are: + + * NAME: the name of the SUT. Must match exactly the NAME used in "statistics/data.csv" (otherwise the generator + stops with an error), as well as the "NAME-sut.jar" file created for the external driver. + * Dockerized: TRUE/FALSE, whether the Docker files should be generated for this SUT. Should be TRUE for all + REST APIs (needed for BB experiments). + * JVM_PARAMETERS: JVM options (eg "-Dkey=value" and "-Xmx" settings) placed BEFORE "-jar NAME-sut.jar" in the + ENTRYPOINT of the generated dockerfile. Can be left empty. + * INPUT_PARAMETERS: program arguments placed AFTER "-jar NAME-sut.jar" (eg "--server.port=8080 + --spring.profiles.active=dev"). This is the typical place to force port 8080 and to point the SUT to its + services in the compose file (note: services are reachable by their compose service name as hostname, eg + "jdbc:postgresql://db:5432/..." when the database service is called "db"). Can be left empty. + * SWAGGER_URL: the URL on which the running container serves its OpenAPI/Swagger schema + (eg "http://localhost:8080/v3/api-docs"). Used to fetch the schema in BB experiments. + * TARGET_URL: the base URL of the running SUT, typically "http://localhost:8080". + * COPY_ADDITIONAL_FILES: TRUE/FALSE. If TRUE, ALL files inside the folder + "scripts/dockerize/data/additional_files/NAME" are copied (COPY) into the working directory of the Docker image. + This is for SUTs needing extra files at runtime next to the JAR (eg configuration files such as YAML configs). + Note the folder MUST exist and MUST have the same name as the SUT (NAME), otherwise the generation fails. + * DEPENDS_ON: semicolon-separated list of service names the SUT container must wait for (rendered as + "depends_on" with a healthcheck condition in the compose file), eg "db" for SUTs whose database defines a + health_check_command. Usually left empty (""). + * SERVICES: a JSON array (quoted as a single CSV cell, with doubled "" for inner quotes) describing the extra + services (databases, mock servers, etc.) to add in the docker-compose file. Each JSON object supports: + - "name": service name in the compose file (optional, defaults to "db"). This is the hostname the SUT + uses to reach it. + - "image_name": the Docker image, eg "postgres:13.13", "mongo:6.0", "mysql:8.0". + - "tmp_fs": path mounted as tmpfs, typically the data folder of the database (eg "/var/lib/postgresql/data"), + so that each run starts with a clean state. Empty string if not needed. + - "environment": semicolon-separated list of "KEY: value" environment entries for the service + (eg "POSTGRES_PASSWORD: password;POSTGRES_DB: foo"). Empty string if none. + - "volume": semicolon-separated list of "host_path:container_path" mounts. Host paths here point into + "../scripts/dockerize/data/additional_files/NAME/..." (relative to the "dockerfiles" folder), eg to + provide DB init scripts ("/docker-entrypoint-initdb.d/...") or mock-server configs. Empty string if none. + - "port": optional "host:container" port mapping, if the service must be reachable from outside the + compose network (eg mock OAuth servers). + - "command": optional command overriding the image default (eg "mongod --replSet rs0 --bind_ip_all"). + - "health_check_command": healthcheck command in Docker list form (eg ["CMD", "mysqladmin", "ping", "-h", + "localhost"]), or empty string "" for no healthcheck. Needed when the SUT uses DEPENDS_ON on this service. + Leave the whole cell empty if the SUT needs no extra services. + Note: if the SUT needs a mock OAuth2 server for authentication, that is defined here as well, as one more + service (see "familie-ba-sak" for an example using "mock-oauth2-server", with the exposed ${AUTH_PORT}). + +- if the SUT needs any extra file inside Docker (either copied into the SUT image via COPY_ADDITIONAL_FILES, or + mounted as a volume of a service in SERVICES), such file must be placed under + "scripts/dockerize/data/additional_files/NAME", where NAME is exactly the same name of the SUT used in "sut.csv". + See the existing subfolders there (eg "blogapi", "pay-publicapi", "webgoat") for examples. + +- after updating "sut.csv" (and "statistics/data.csv"), run "scripts/createDockerFiles.py" to (re)generate + "dockerfiles/NAME.dockerfile" and "dockerfiles/NAME.yaml", and commit them as well. + A good way to verify the setup is to build the SUT JARs (dist), start the compose file, and check that the + OpenAPI schema is reachable at SWAGGER_URL. \ No newline at end of file diff --git a/scripts/dockerize/data/sut.csv b/scripts/dockerize/data/sut.csv index 601d7b0a1..b30a55238 100644 --- a/scripts/dockerize/data/sut.csv +++ b/scripts/dockerize/data/sut.csv @@ -1,37 +1,37 @@ -NAME,Dockerized,JVM_PARAMETERS,INPUT_PARAMETERS,SWAGGER_URL,TARGET_URL,COPY_ADDITIONAL_FILES,MOCK_OAUTH,DEPENDS_ON,SERVICES -familie-ba-sak,TRUE,-DAZUREAD_TOKEN_ENDPOINT_URL=http://fake-azure-token-endpoint.no:8080 -DAZURE_OPENID_CONFIG_TOKEN_ENDPOINT=bar -DAZURE_APP_CLIENT_ID=bar -DNAIS_APP_NAME=bar -DUNLEASH_SERVER_API_URL=http://fake-unleash-server-api.no:8080 -DUNLEASH_SERVER_API_TOKEN=bar -DBA_SAK_CLIENT_ID=some-audience,--server.port=8080 --spring.profiles.active=dev --management.server.port=-1 --server.ssl.enabled=false --spring.datasource.url=jdbc:postgresql://db:5432/familiebasak --spring.datasource.username=postgres --spring.datasource.password=password --sentry.logging.enabled=false --sentry.environment=local --funksjonsbrytere.kafka.producer.enabled=false --funksjonsbrytere.enabled=false --logging.level.root=OFF --logging.config=classpath:logback-spring.xml --logging.level.org.springframework=INFO --no.nav.security.jwt.issuer.azuread.discoveryurl=http://mock-oauth2-server:${AUTH_PORT:-8081}/azuread/.well-known/openid-configuration --prosessering.rolle=928636f4-fd0d-4149-978e-a6fb68bb19de --FAMILIE_EF_SAK_API_URL=http://fake-familie-ef-sak/api --FAMILIE_KLAGE_URL=http://fake-familie-klage --FAMILIE_BREV_API_URL=http://fake-familie-brev --FAMILIE_BA_INFOTRYGD_FEED_API_URL=http://fake-familie-ba-infotrygd-feed/api --FAMILIE_BA_INFOTRYGD_API_URL=http://fake-familie-ba-infotrygd --FAMILIE_TILBAKE_API_URL=http://fake-familie-tilbake/api --PDL_URL=http://fake-pdl-api.default --FAMILIE_INTEGRASJONER_API_URL=http://fake-familie-integrasjoner/api --FAMILIE_OPPDRAG_API_URL=http://fake-familie-oppdrag/api --SANITY_FAMILIE_API_URL=http://fake-xsrv1mh6.apicdn.sanity.io/v2021-06-07/data/query/ba-brev --ECB_API_URL=http://fake-data-api.ecb.europa.eu/service/data/EXR/ --rolle.veileder=93a26831-9866-4410-927b-74ff51a9107c --rolle.saksbehandler=d21e00a4-969d-4b28-8782-dc818abfae65 --rolle.beslutter=9449c153-5a1e-44a7-84c6-7cc7a8867233 --rolle.forvalter=c62e908a-cf20-4ad0-b7b3-3ff6ca4bf38b --rolle.kode6=5ef775f2-61f8-4283-bf3d-8d03f428aa14 --rolle.kode7=ea930b6b-9397-44d9-b9e6-f4cf527a632a,http://localhost:8080/v3/api-docs,http://localhost:8080,FALSE,TRUE,"","[{""image_name"": ""postgres:13.13"", ""tmp_fs"": ""/var/lib/postgresql/data"", ""environment"": ""POSTGRES_PASSWORD: password;POSTGRES_HOST_AUTH_METHOD: trust;POSTGRES_DB: familiebasak"", ""volume"": """", ""health_check_command"": """"},{""name"":""mock-oauth2-server"",""image_name"": ""ghcr.io/navikt/mock-oauth2-server:2.0.1"", ""tmp_fs"": """", ""environment"": ""LOG_LEVEL: verbose;SERVER_PORT: ${AUTH_PORT:-8081};JSON_CONFIG_PATH: /app/mockoauth2.json"", ""volume"": ""../scripts/dockerize/data/additional_files/familie-ba-sak/mockoauth2.json:/app/mockoauth2.json"", ""port"": ""${AUTH_PORT:-8081}:${AUTH_PORT:-8081}"", ""health_check_command"": """"}]" -pay-publicapi,TRUE,-Ddw.server.applicationConnectors[0].port=8080 -Ddw.server.adminConnectors[0].port=0 -Ddw.redis.endpoint=db:6379,server em_config.yaml,http://localhost:8080/assets/swagger.json,http://localhost:8080,TRUE,FALSE,"","[{""image_name"": ""redis:7.2.3"", ""tmp_fs"": """", ""environment"": """", ""volume"": """", ""health_check_command"": """"}]" -session-service,TRUE,"",--server.port=8080 --spring.data.mongodb.uri=mongodb://db:27017/mongo_db --spring.cache.type=NONE,http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,FALSE,"","[{""image_name"": ""mongo:6.0"", ""tmp_fs"": ""/data/db"", ""environment"": """", ""volume"": """", ""health_check_command"": """"}]" -bibliothek,TRUE,"",--server.port=8080 --databaseUrl=mongodb://db:27017/mongo_db --spring.data.mongodb.uri=mongodb://db:27017/mongo_db --app.storagePath=./tmp/bibliothek/,http://localhost:8080/openapi,http://localhost:8080,FALSE,FALSE,"","[{""image_name"": ""mongo:6"", ""tmp_fs"": ""/data/db"", ""environment"": """", ""volume"": """", ""health_check_command"": """"}]" -reservations-api,TRUE,-Dfile.encoding=ISO-8859-1,--server.port=8080 --databaseUrl=mongodb://db:27017/mongo_db --spring.data.mongodb.uri=mongodb://db:27017/mongo_db --app.jwt.secret=abcdef012345678901234567890123456789abcdef012345678901234567890123456789,http://localhost:8080/v3/api-docs,http://localhost:8080,FALSE,FALSE,"","[{""image_name"": ""mongo:4.4"", ""tmp_fs"": ""/data/db"", ""environment"": """", ""command"": ""mongod --replSet rs0 --bind_ip_all"", ""volume"": ""../scripts/dockerize/data/additional_files/reservations-api/mongo-init.js:/docker-entrypoint-initdb.d/01-init-replica.js;../scripts/dockerize/data/additional_files/reservations-api/mongo_import.sh:/docker-entrypoint-initdb.d/mongo_import.sh;../scripts/dockerize/data/additional_files/reservations-api/init.json:/fixtures/init.json"", ""health_check_command"": """"}]" -catwatch,TRUE,-Dserver.port=8080 -Dspring.datasource.url=jdbc:h2:mem:testdb -Dspring.jpa.database-platform=org.hibernate.dialect.H2Dialect -Dspring.datasource.username=sa -Dspring.datasource.password,"",http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,FALSE,"", -cwa-verification,TRUE,-Dspring.datasource.url=jdbc:h2:mem:testdb -Dspring.datasource.driver-class-name=org.h2.Driver -Dspring.datasource.username=sa -Dspring.datasource.password,"--server.port=8080 --spring.profiles.active=local,external,internal --management.server.port=-1 --server.ssl.enabled=false --cwa-testresult-server.url=http://cwa-testresult-server:8088",http://localhost:8080/api-docs.json,http://localhost:8080,FALSE,FALSE,"", -features-service,TRUE,-Dspring.datasource.url=jdbc:h2:mem:testdb -Dspring.jpa.database-platform=org.hibernate.dialect.H2Dialect -Dspring.datasource.username=sa -Dspring.datasource.password,--server.port=8080,http://localhost:8080/swagger.json,http://localhost:8080,FALSE,FALSE,"", -gestaohospital,TRUE,"",--server.port=8080 --liquibase.enabled=false --spring.data.mongodb.uri=mongodb://db:27017/mongo_db --spring.datasource.username=sa --spring.datasource.password --dg-toolkit.derby.port=0 --spring.cache.type=NONE,http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,FALSE,"","[{""image_name"": ""mongo:6"", ""tmp_fs"": ""/data/db"", ""environment"": """", ""volume"": """", ""health_check_command"": """"}]" -languagetool,TRUE,"",--port 8080 --public,http://localhost:8080/v2/swagger,http://localhost:8080,FALSE,FALSE,"", -ocvn,TRUE,-Dliquibase.enabled=false -Dspring.data.mongodb.uri=mongodb://db:27017/mongo_db -Dspring.datasource.url=jdbc:h2:mem:testdb -Dspring.datasource.driver-class-name=org.h2.Driver -Dspring.jpa.database-platform=org.hibernate.dialect.H2Dialect -Dspring.jpa.properties.hibernate.enable_lazy_load_no_trans=true -Dspring.datasource.username=sa -Dspring.datasource.password -Ddg-toolkit.derby.port=0 -Dspring.cache.type=NONE -Dspring.datasource.data=file:./init_db.sql,--server.port=8080,http://localhost:8080/v2/api-docs?group=1ocDashboardsApi,http://localhost:8080,TRUE,FALSE,"","[{""image_name"": ""mongo:3.2"", ""tmp_fs"": ""/data/db"", ""environment"": """", ""volume"": """", ""health_check_command"": """"}]" -proxyprint,TRUE,-Dspring.datasource.url=jdbc:h2:mem:testdb -Dspring.jpa.database-platform=org.hibernate.dialect.H2Dialect -Dspring.datasource.username=sa -Dspring.datasource.password -Dspring.jpa.show-sql=false -Dspring.jpa.hibernate.ddl-auto=create-drop -Xmx4G,--server.port=8080,http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,FALSE,"", -rest-ncs,TRUE,"",--server.port=8080,http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,FALSE,"", -rest-news,TRUE,"",--server.port=8080,http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,FALSE,"", -rest-scs,TRUE,"",--server.port=8080,http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,FALSE,"", -restcountries,TRUE,"",--server.port=8080,http://localhost:8080/openapi.yaml,http://localhost:8080,FALSE,FALSE,"", -scout-api,TRUE,"",server scout_api_evomaster.yml,http://localhost:8080/api/swagger.json,http://localhost:8080,TRUE,FALSE,"", -genome-nexus,TRUE,"",--server.port=8080 --spring.data.mongodb.uri=mongodb://db:27017/mongo_db --spring.cache.type=NONE,http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,FALSE,"","[{""image_name"": ""mongo:3.6.2"", ""tmp_fs"": ""/data/db"", ""environment"": """", ""volume"": """", ""health_check_command"": """"}]" -market,TRUE,"-Dspring.datasource.url=""jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1"" -Dspring.datasource.username=sa -Dspring.datasource.password",--server.port=8080,http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,FALSE,"", -blogapi,TRUE,"","--server.port=8080 --spring.datasource.url=""jdbc:mysql://db:3306/blogapi?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true""",http://localhost:8080/blogapi.json,http://localhost:8080,FALSE,FALSE,"db","[{""image_name"": ""mysql:8.0"", ""tmp_fs"": ""/var/lib/mysql"", ""environment"": ""MYSQL_ROOT_PASSWORD: root;MYSQL_DATABASE: blogapi"", ""volume"": ""../scripts/dockerize/data/additional_files/blogapi/blogapi.sql:/docker-entrypoint-initdb.d/blogapi.sql;../scripts/dockerize/data/additional_files/blogapi/data.sql:/docker-entrypoint-initdb.d/data.sql"", ""health_check_command"": [""CMD"", ""mysqladmin"", ""ping"", ""-h"", ""localhost""]}]" -user-management,TRUE,"","--server.port=8080 --spring.datasource.url=""jdbc:mysql://db:3306/users?useSSL=false&allowPublicKeyRetrieval=true""",http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,FALSE,"db","[{""image_name"": ""mysql:8.0"", ""tmp_fs"": ""/var/lib/mysql"", ""environment"": ""MYSQL_ROOT_PASSWORD: root;MYSQL_DATABASE: users"", ""volume"": """", ""health_check_command"": [""CMD"", ""mysqladmin"", ""ping"", ""-h"", ""localhost""]}]" -youtube-mock,TRUE,"",--server.port=8080,http://localhost:8080/swagger.yaml,http://localhost:8080,FALSE,FALSE,"", -person-controller,TRUE,"",--server.port=8080 --spring.data.mongodb.uri=mongodb://db:27017 --spring.cache.type=None,http://localhost:8080/v3/api-docs,http://localhost:8080,FALSE,FALSE,"","[{""image_name"": ""mongo:7.0"", ""tmp_fs"": ""/data/db"", ""environment"": """", ""volume"": """", ""health_check_command"": """"}]" -tracking-system,TRUE,"","--server.port=8080 --spring.profiles.active=dev --spring.datasource.url=""jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1"" --spring.datasource.username=sa --spring.datasource.password",http://localhost:8080/app/v2/api-docs,http://localhost:8080,FALSE,FALSE,"", -tiltaksgjennomforing,TRUE,"",--server.port=8080 --spring.profiles.active=dev-gcp-labs --spring.datasource.driverClassName=org.postgresql.Driver --spring.sql.init.platform=postgres --no.nav.security.jwt.issuer.aad.discoveryurl=http://mock-oauth2-server:${AUTH_PORT:-8081}/aad/.well-known/openid-configuration --no.nav.security.jwt.issuer.aad.accepted_audience=aad --no.nav.security.jwt.issuer.system.discoveryurl=http://mock-oauth2-server:${AUTH_PORT:-8081}/system/.well-known/openid-configuration --no.nav.security.jwt.issuer.system.accepted_audience=system --no.nav.security.jwt.issuer.tokenx.discoveryurl=http://mock-oauth2-server:${AUTH_PORT:-8081}/tokenx/.well-known/openid-configuration --no.nav.security.jwt.issuer.tokenx.accepted_audience=tokenx --management.server.port=-1 --server.ssl.enabled=false --spring.datasource.url=jdbc:postgresql://db:5432/tiltaksgjennomforing --spring.datasource.username=postgres --spring.datasource.password=password --sentry.logging.enabled=false --sentry.environment=local --logging.level.root=OFF --logging.config=classpath:logback-spring.xml --logging.level.org.springframework=INFO,http://localhost:8080/tiltaksgjennomforing-api/v3/api-docs,http://localhost:8080,FALSE,TRUE,"","[{""image_name"": ""postgres:13.13"", ""tmp_fs"": ""/var/lib/postgresql/data"", ""environment"": ""POSTGRES_PASSWORD: password;POSTGRES_HOST_AUTH_METHOD: trust;POSTGRES_DB: tiltaksgjennomforing"", ""volume"": """", ""health_check_command"": """"},{""name"":""mock-oauth2-server"",""image_name"": ""ghcr.io/navikt/mock-oauth2-server:2.0.1"", ""tmp_fs"": """", ""environment"": ""LOG_LEVEL: verbose;SERVER_PORT: ${AUTH_PORT:-8081};JSON_CONFIG_PATH: /app/mockoauth2.json"", ""volume"": ""../scripts/dockerize/data/additional_files/tiltaksgjennomforing/mockoauth2.json:/app/mockoauth2.json"", ""port"": ""${AUTH_PORT:-8081}:${AUTH_PORT:-8081}"", ""health_check_command"": """"}]" -ohsome-api,TRUE,"",--server.port=8080 --database.db=heidelberg,http:///localhost:8080/docs?group=Data%20Aggregation,http://localhost:8080,TRUE,FALSE,"", -spring-batch-rest,TRUE,"",--server.port=8080 --spring.batch.job.enabled=false --lastNamePrefix= --upperCase=false,http://localhost:8080/v3/api-docs,http://localhost:8080,FALSE,FALSE,"", -spring-rest-example,TRUE,"","--server.port=8080 --spring.datasource.username=root --spring.datasource.password=root --spring.datasource.url=""jdbc:mysql://db:3306/example?useSSL=false&allowPublicKeyRetrieval=true""",http://localhost:8080/v3/api-docs,http://localhost:8080,FALSE,FALSE,"db","[{""image_name"": ""mysql:8.0"", ""tmp_fs"": ""/var/lib/mysql"", ""environment"": ""MYSQL_ROOT_PASSWORD: root;MYSQL_DATABASE: example"", ""volume"": """", ""health_check_command"": [""CMD"", ""mysqladmin"", ""ping"", ""-h"", ""localhost""]}]" -erc20-rest-service,TRUE,"",--server.port=8080,http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,FALSE,"", -spring-actuator-demo,TRUE,"",--server.port=8080,http://localhost:8080/v3/api-docs,http://localhost:8080,FALSE,FALSE,"", -webgoat,TRUE,-Drunning.in.docker=true,"--webgoat.port=8080 --webwolf.port=8081 --server.address=""0.0.0.0"" --spring.profiles.active=dev --spring.datasource.driver-class-name=org.h2.Driver --spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect --spring.jpa.properties.jakarta.persistence.schema-generation.scripts.action=none --spring.sql.init.mode=never --spring.datasource.url=""jdbc:h2:file:./test"" --spring.datasource.username=sa --spring.datasource.password",http://localhost:8080/WebGoat/v3/api-docs,http://localhost:8080,TRUE,FALSE,"", -swagger-petstore,TRUE,"",8080,http://localhost:8080/api/v3/openapi.json,http://localhost:8080,TRUE,FALSE,"", -http-patch-spring,TRUE,"",--server.port=8080,http://localhost:8080/v3/api-docs,http://localhost:8080,FALSE,FALSE,"", -spring-ecommerce,TRUE,-Dfile.encoding=ISO-8859-1,--server.port=8080 --spring.datasource.host=mongodb --spring.datasource.port=27017 --spring.datasource.database=test --spring.data.mongodb.uri=mongodb://mongodb:27017/test --spring.redis.host=redis --spring.redis.port=6379 --spring.data.elasticsearch.cluster-name=elasticsearch --spring.data.elasticsearch.cluster-nodes=elasticsearch:9300 --spring.elasticsearch.rest.uris=elasticsearch:9200 --spring.data.elasticsearch.host=elasticsearch --spring.data.elasticsearch.port=9300 --spring.cache.type=NONE,http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,FALSE,"","[{""name"": ""mongodb"", ""image_name"": ""mongo:7.0"", ""tmp_fs"": ""/data/db"", ""environment"": ""MONGODB_REPLICA_SET_MODE: primary;ALLOW_EMPTY_PASSWORD: yes"", ""volume"": ""../scripts/dockerize/data/additional_files/spring-ecommerce/mongo_import.sh:/docker-entrypoint-initdb.d/mongo_import.sh;../scripts/dockerize/data/additional_files/spring-ecommerce/init.json:/fixtures/init.json"", ""health_check_command"": """"}, {""name"": ""redis"", ""image_name"": ""redis:7.0.11"", ""tmp_fs"": """", ""environment"": """", ""volume"": """", ""health_check_command"": """"}, {""name"": ""elasticsearch"",""image_name"": ""docker.elastic.co/elasticsearch/elasticsearch:6.8.23"", ""tmp_fs"": ""/usr/share/elasticsearch/data"", ""environment"": ""- discovery.type=single-node;- cluster.name=elasticsearch;- ES_JAVA_OPTS=-Xms512m -Xmx512m;- xpack.security.enabled=false"", ""volume"": """", ""health_check_command"": """"}]" -quartz-manager,TRUE,,--server.port=8080 --quartz-manager.security.accounts.in-memory.users[0].username=foo --quartz-manager.security.accounts.in-memory.users[0].password=bar --quartz-manager.security.accounts.in-memory.users[0].roles[0]=admin --quartz-manager.security.accounts.in-memory.users[1].username=foo2 --quartz-manager.security.accounts.in-memory.users[1].password=bar --quartz-manager.security.accounts.in-memory.users[1].roles[0]=admin,http://localhost:8080/v3/api-docs,http://localhost:8080,FALSE,FALSE,"", -microcks,TRUE,-DPOSTMAN_RUNNER_URL=http://postman:3000 -DSERVICES_UPDATE_INTERVAL='0 0 0/2 * * *' -DKEYCLOAK_URL=http://keycloak:8080 -DKEYCLOAK_PUBLIC_URL=http://localhost:${AUTH_PORT:-8081} -DENABLE_CORS_POLICY=false -DCORS_REST_ALLOW_CREDENTIALS=true -DTEST_CALLBACK_URL=http://localhost:${HOST_PORT:-8080},--server.port=8080 --spring.profiles.active=prod --grpc.server.port=0 --spring.data.mongodb.uri=mongodb://mongodb:27017/test --spring.security.oauth2.resourceserver.jwt.issuer-uri=http://localhost:${AUTH_PORT:-8081}/realms/microcks --spring.security.oauth2.resourceserver.jwt.jwk-set-uri=http://keycloak:8080/realms/microcks/protocol/openid-connect/certs,http://localhost:8080/v3/api-docs,http://localhost:8080,FALSE,FALSE,"","[{""name"": ""mongodb"", ""image_name"": ""mongo:7.0"", ""tmp_fs"": ""/data/db"", ""environment"": ""MONGODB_REPLICA_SET_MODE: primary;ALLOW_EMPTY_PASSWORD: yes"", ""volume"": """", ""health_check_command"": """"},{""name"": ""keycloak"",""image_name"": ""quay.io/keycloak/keycloak:26.0.0"", ""command"":[""start-dev"", ""--hostname=http://localhost:${AUTH_PORT:-8081}"", ""--import-realm"", ""--health-enabled=true""], ""port"": ""${AUTH_PORT:-8081}:8080"", ""tmp_fs"": """", ""environment"": ""KEYCLOAK_ADMIN: 'admin';KEYCLOAK_ADMIN_PASSWORD: 'admin';KC_HEALTH_ENABLED: 'true';KC_METRICS_ENABLED: 'true'"", ""volume"": ""../scripts/dockerize/data/additional_files/microcks/microcks-realm-sample.json:/opt/keycloak/data/import/microcks-realm.json"", ""health_check_command"": [""CMD"", ""sh"", ""-c"", ""echo -e 'GET /health/live HTTP/1.1\r\nHost: localhost\r\n\r\n' > /dev/tcp/localhost/9000""]},{""name"": ""postman"", ""image_name"": ""quay.io/microcks/microcks-postman-runtime:0.6.0"", ""tmp_fs"": """", ""environment"": """", ""volume"": """", ""health_check_command"": [""CMD"", ""curl"", ""-f"", ""http://localhost:3000/health""]}]" +NAME,Dockerized,JVM_PARAMETERS,INPUT_PARAMETERS,SWAGGER_URL,TARGET_URL,COPY_ADDITIONAL_FILES,DEPENDS_ON,SERVICES +familie-ba-sak,TRUE,-DAZUREAD_TOKEN_ENDPOINT_URL=http://fake-azure-token-endpoint.no:8080 -DAZURE_OPENID_CONFIG_TOKEN_ENDPOINT=bar -DAZURE_APP_CLIENT_ID=bar -DNAIS_APP_NAME=bar -DUNLEASH_SERVER_API_URL=http://fake-unleash-server-api.no:8080 -DUNLEASH_SERVER_API_TOKEN=bar -DBA_SAK_CLIENT_ID=some-audience,--server.port=8080 --spring.profiles.active=dev --management.server.port=-1 --server.ssl.enabled=false --spring.datasource.url=jdbc:postgresql://db:5432/familiebasak --spring.datasource.username=postgres --spring.datasource.password=password --sentry.logging.enabled=false --sentry.environment=local --funksjonsbrytere.kafka.producer.enabled=false --funksjonsbrytere.enabled=false --logging.level.root=OFF --logging.config=classpath:logback-spring.xml --logging.level.org.springframework=INFO --no.nav.security.jwt.issuer.azuread.discoveryurl=http://mock-oauth2-server:${AUTH_PORT:-8081}/azuread/.well-known/openid-configuration --prosessering.rolle=928636f4-fd0d-4149-978e-a6fb68bb19de --FAMILIE_EF_SAK_API_URL=http://fake-familie-ef-sak/api --FAMILIE_KLAGE_URL=http://fake-familie-klage --FAMILIE_BREV_API_URL=http://fake-familie-brev --FAMILIE_BA_INFOTRYGD_FEED_API_URL=http://fake-familie-ba-infotrygd-feed/api --FAMILIE_BA_INFOTRYGD_API_URL=http://fake-familie-ba-infotrygd --FAMILIE_TILBAKE_API_URL=http://fake-familie-tilbake/api --PDL_URL=http://fake-pdl-api.default --FAMILIE_INTEGRASJONER_API_URL=http://fake-familie-integrasjoner/api --FAMILIE_OPPDRAG_API_URL=http://fake-familie-oppdrag/api --SANITY_FAMILIE_API_URL=http://fake-xsrv1mh6.apicdn.sanity.io/v2021-06-07/data/query/ba-brev --ECB_API_URL=http://fake-data-api.ecb.europa.eu/service/data/EXR/ --rolle.veileder=93a26831-9866-4410-927b-74ff51a9107c --rolle.saksbehandler=d21e00a4-969d-4b28-8782-dc818abfae65 --rolle.beslutter=9449c153-5a1e-44a7-84c6-7cc7a8867233 --rolle.forvalter=c62e908a-cf20-4ad0-b7b3-3ff6ca4bf38b --rolle.kode6=5ef775f2-61f8-4283-bf3d-8d03f428aa14 --rolle.kode7=ea930b6b-9397-44d9-b9e6-f4cf527a632a,http://localhost:8080/v3/api-docs,http://localhost:8080,FALSE,"","[{""image_name"": ""postgres:13.13"", ""tmp_fs"": ""/var/lib/postgresql/data"", ""environment"": ""POSTGRES_PASSWORD: password;POSTGRES_HOST_AUTH_METHOD: trust;POSTGRES_DB: familiebasak"", ""volume"": """", ""health_check_command"": """"},{""name"":""mock-oauth2-server"",""image_name"": ""ghcr.io/navikt/mock-oauth2-server:2.0.1"", ""tmp_fs"": """", ""environment"": ""LOG_LEVEL: verbose;SERVER_PORT: ${AUTH_PORT:-8081};JSON_CONFIG_PATH: /app/mockoauth2.json"", ""volume"": ""../scripts/dockerize/data/additional_files/familie-ba-sak/mockoauth2.json:/app/mockoauth2.json"", ""port"": ""${AUTH_PORT:-8081}:${AUTH_PORT:-8081}"", ""health_check_command"": """"}]" +pay-publicapi,TRUE,-Ddw.server.applicationConnectors[0].port=8080 -Ddw.server.adminConnectors[0].port=0 -Ddw.redis.endpoint=db:6379,server em_config.yaml,http://localhost:8080/assets/swagger.json,http://localhost:8080,TRUE,"","[{""image_name"": ""redis:7.2.3"", ""tmp_fs"": """", ""environment"": """", ""volume"": """", ""health_check_command"": """"}]" +session-service,TRUE,"",--server.port=8080 --spring.data.mongodb.uri=mongodb://db:27017/mongo_db --spring.cache.type=NONE,http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,"","[{""image_name"": ""mongo:6.0"", ""tmp_fs"": ""/data/db"", ""environment"": """", ""volume"": """", ""health_check_command"": """"}]" +bibliothek,TRUE,"",--server.port=8080 --databaseUrl=mongodb://db:27017/mongo_db --spring.data.mongodb.uri=mongodb://db:27017/mongo_db --app.storagePath=./tmp/bibliothek/,http://localhost:8080/openapi,http://localhost:8080,FALSE,"","[{""image_name"": ""mongo:6"", ""tmp_fs"": ""/data/db"", ""environment"": """", ""volume"": """", ""health_check_command"": """"}]" +reservations-api,TRUE,-Dfile.encoding=ISO-8859-1,--server.port=8080 --databaseUrl=mongodb://db:27017/mongo_db --spring.data.mongodb.uri=mongodb://db:27017/mongo_db --app.jwt.secret=abcdef012345678901234567890123456789abcdef012345678901234567890123456789,http://localhost:8080/v3/api-docs,http://localhost:8080,FALSE,"","[{""image_name"": ""mongo:4.4"", ""tmp_fs"": ""/data/db"", ""environment"": """", ""command"": ""mongod --replSet rs0 --bind_ip_all"", ""volume"": ""../scripts/dockerize/data/additional_files/reservations-api/mongo-init.js:/docker-entrypoint-initdb.d/01-init-replica.js;../scripts/dockerize/data/additional_files/reservations-api/mongo_import.sh:/docker-entrypoint-initdb.d/mongo_import.sh;../scripts/dockerize/data/additional_files/reservations-api/init.json:/fixtures/init.json"", ""health_check_command"": """"}]" +catwatch,TRUE,-Dserver.port=8080 -Dspring.datasource.url=jdbc:h2:mem:testdb -Dspring.jpa.database-platform=org.hibernate.dialect.H2Dialect -Dspring.datasource.username=sa -Dspring.datasource.password,"",http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,"", +cwa-verification,TRUE,-Dspring.datasource.url=jdbc:h2:mem:testdb -Dspring.datasource.driver-class-name=org.h2.Driver -Dspring.datasource.username=sa -Dspring.datasource.password,"--server.port=8080 --spring.profiles.active=local,external,internal --management.server.port=-1 --server.ssl.enabled=false --cwa-testresult-server.url=http://cwa-testresult-server:8088",http://localhost:8080/api-docs.json,http://localhost:8080,FALSE,"", +features-service,TRUE,-Dspring.datasource.url=jdbc:h2:mem:testdb -Dspring.jpa.database-platform=org.hibernate.dialect.H2Dialect -Dspring.datasource.username=sa -Dspring.datasource.password,--server.port=8080,http://localhost:8080/swagger.json,http://localhost:8080,FALSE,"", +gestaohospital,TRUE,"",--server.port=8080 --liquibase.enabled=false --spring.data.mongodb.uri=mongodb://db:27017/mongo_db --spring.datasource.username=sa --spring.datasource.password --dg-toolkit.derby.port=0 --spring.cache.type=NONE,http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,"","[{""image_name"": ""mongo:6"", ""tmp_fs"": ""/data/db"", ""environment"": """", ""volume"": """", ""health_check_command"": """"}]" +languagetool,TRUE,"",--port 8080 --public,http://localhost:8080/v2/swagger,http://localhost:8080,FALSE,"", +ocvn,TRUE,-Dliquibase.enabled=false -Dspring.data.mongodb.uri=mongodb://db:27017/mongo_db -Dspring.datasource.url=jdbc:h2:mem:testdb -Dspring.datasource.driver-class-name=org.h2.Driver -Dspring.jpa.database-platform=org.hibernate.dialect.H2Dialect -Dspring.jpa.properties.hibernate.enable_lazy_load_no_trans=true -Dspring.datasource.username=sa -Dspring.datasource.password -Ddg-toolkit.derby.port=0 -Dspring.cache.type=NONE -Dspring.datasource.data=file:./init_db.sql,--server.port=8080,http://localhost:8080/v2/api-docs?group=1ocDashboardsApi,http://localhost:8080,TRUE,"","[{""image_name"": ""mongo:3.2"", ""tmp_fs"": ""/data/db"", ""environment"": """", ""volume"": """", ""health_check_command"": """"}]" +proxyprint,TRUE,-Dspring.datasource.url=jdbc:h2:mem:testdb -Dspring.jpa.database-platform=org.hibernate.dialect.H2Dialect -Dspring.datasource.username=sa -Dspring.datasource.password -Dspring.jpa.show-sql=false -Dspring.jpa.hibernate.ddl-auto=create-drop -Xmx4G,--server.port=8080,http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,"", +rest-ncs,TRUE,"",--server.port=8080,http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,"", +rest-news,TRUE,"",--server.port=8080,http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,"", +rest-scs,TRUE,"",--server.port=8080,http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,"", +restcountries,TRUE,"",--server.port=8080,http://localhost:8080/openapi.yaml,http://localhost:8080,FALSE,"", +scout-api,TRUE,"",server scout_api_evomaster.yml,http://localhost:8080/api/swagger.json,http://localhost:8080,TRUE,"", +genome-nexus,TRUE,"",--server.port=8080 --spring.data.mongodb.uri=mongodb://db:27017/mongo_db --spring.cache.type=NONE,http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,"","[{""image_name"": ""mongo:3.6.2"", ""tmp_fs"": ""/data/db"", ""environment"": """", ""volume"": """", ""health_check_command"": """"}]" +market,TRUE,"-Dspring.datasource.url=""jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1"" -Dspring.datasource.username=sa -Dspring.datasource.password",--server.port=8080,http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,"", +blogapi,TRUE,"","--server.port=8080 --spring.datasource.url=""jdbc:mysql://db:3306/blogapi?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true""",http://localhost:8080/blogapi.json,http://localhost:8080,FALSE,"db","[{""image_name"": ""mysql:8.0"", ""tmp_fs"": ""/var/lib/mysql"", ""environment"": ""MYSQL_ROOT_PASSWORD: root;MYSQL_DATABASE: blogapi"", ""volume"": ""../scripts/dockerize/data/additional_files/blogapi/blogapi.sql:/docker-entrypoint-initdb.d/blogapi.sql;../scripts/dockerize/data/additional_files/blogapi/data.sql:/docker-entrypoint-initdb.d/data.sql"", ""health_check_command"": [""CMD"", ""mysqladmin"", ""ping"", ""-h"", ""localhost""]}]" +user-management,TRUE,"","--server.port=8080 --spring.datasource.url=""jdbc:mysql://db:3306/users?useSSL=false&allowPublicKeyRetrieval=true""",http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,"db","[{""image_name"": ""mysql:8.0"", ""tmp_fs"": ""/var/lib/mysql"", ""environment"": ""MYSQL_ROOT_PASSWORD: root;MYSQL_DATABASE: users"", ""volume"": """", ""health_check_command"": [""CMD"", ""mysqladmin"", ""ping"", ""-h"", ""localhost""]}]" +youtube-mock,TRUE,"",--server.port=8080,http://localhost:8080/swagger.yaml,http://localhost:8080,FALSE,"", +person-controller,TRUE,"",--server.port=8080 --spring.data.mongodb.uri=mongodb://db:27017 --spring.cache.type=None,http://localhost:8080/v3/api-docs,http://localhost:8080,FALSE,"","[{""image_name"": ""mongo:7.0"", ""tmp_fs"": ""/data/db"", ""environment"": """", ""volume"": """", ""health_check_command"": """"}]" +tracking-system,TRUE,"","--server.port=8080 --spring.profiles.active=dev --spring.datasource.url=""jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1"" --spring.datasource.username=sa --spring.datasource.password",http://localhost:8080/app/v2/api-docs,http://localhost:8080,FALSE,"", +tiltaksgjennomforing,TRUE,"",--server.port=8080 --spring.profiles.active=dev-gcp-labs --spring.datasource.driverClassName=org.postgresql.Driver --spring.sql.init.platform=postgres --no.nav.security.jwt.issuer.aad.discoveryurl=http://mock-oauth2-server:${AUTH_PORT:-8081}/aad/.well-known/openid-configuration --no.nav.security.jwt.issuer.aad.accepted_audience=aad --no.nav.security.jwt.issuer.system.discoveryurl=http://mock-oauth2-server:${AUTH_PORT:-8081}/system/.well-known/openid-configuration --no.nav.security.jwt.issuer.system.accepted_audience=system --no.nav.security.jwt.issuer.tokenx.discoveryurl=http://mock-oauth2-server:${AUTH_PORT:-8081}/tokenx/.well-known/openid-configuration --no.nav.security.jwt.issuer.tokenx.accepted_audience=tokenx --management.server.port=-1 --server.ssl.enabled=false --spring.datasource.url=jdbc:postgresql://db:5432/tiltaksgjennomforing --spring.datasource.username=postgres --spring.datasource.password=password --sentry.logging.enabled=false --sentry.environment=local --logging.level.root=OFF --logging.config=classpath:logback-spring.xml --logging.level.org.springframework=INFO,http://localhost:8080/tiltaksgjennomforing-api/v3/api-docs,http://localhost:8080,FALSE,"","[{""image_name"": ""postgres:13.13"", ""tmp_fs"": ""/var/lib/postgresql/data"", ""environment"": ""POSTGRES_PASSWORD: password;POSTGRES_HOST_AUTH_METHOD: trust;POSTGRES_DB: tiltaksgjennomforing"", ""volume"": """", ""health_check_command"": """"},{""name"":""mock-oauth2-server"",""image_name"": ""ghcr.io/navikt/mock-oauth2-server:2.0.1"", ""tmp_fs"": """", ""environment"": ""LOG_LEVEL: verbose;SERVER_PORT: ${AUTH_PORT:-8081};JSON_CONFIG_PATH: /app/mockoauth2.json"", ""volume"": ""../scripts/dockerize/data/additional_files/tiltaksgjennomforing/mockoauth2.json:/app/mockoauth2.json"", ""port"": ""${AUTH_PORT:-8081}:${AUTH_PORT:-8081}"", ""health_check_command"": """"}]" +ohsome-api,TRUE,"",--server.port=8080 --database.db=heidelberg,http:///localhost:8080/docs?group=Data%20Aggregation,http://localhost:8080,TRUE,"", +spring-batch-rest,TRUE,"",--server.port=8080 --spring.batch.job.enabled=false --lastNamePrefix= --upperCase=false,http://localhost:8080/v3/api-docs,http://localhost:8080,FALSE,"", +spring-rest-example,TRUE,"","--server.port=8080 --spring.datasource.username=root --spring.datasource.password=root --spring.datasource.url=""jdbc:mysql://db:3306/example?useSSL=false&allowPublicKeyRetrieval=true""",http://localhost:8080/v3/api-docs,http://localhost:8080,FALSE,"db","[{""image_name"": ""mysql:8.0"", ""tmp_fs"": ""/var/lib/mysql"", ""environment"": ""MYSQL_ROOT_PASSWORD: root;MYSQL_DATABASE: example"", ""volume"": """", ""health_check_command"": [""CMD"", ""mysqladmin"", ""ping"", ""-h"", ""localhost""]}]" +erc20-rest-service,TRUE,"",--server.port=8080,http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,"", +spring-actuator-demo,TRUE,"",--server.port=8080,http://localhost:8080/v3/api-docs,http://localhost:8080,FALSE,"", +webgoat,TRUE,-Drunning.in.docker=true,"--webgoat.port=8080 --webwolf.port=8081 --server.address=""0.0.0.0"" --spring.profiles.active=dev --spring.datasource.driver-class-name=org.h2.Driver --spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect --spring.jpa.properties.jakarta.persistence.schema-generation.scripts.action=none --spring.sql.init.mode=never --spring.datasource.url=""jdbc:h2:file:./test"" --spring.datasource.username=sa --spring.datasource.password",http://localhost:8080/WebGoat/v3/api-docs,http://localhost:8080,TRUE,"", +swagger-petstore,TRUE,"",8080,http://localhost:8080/api/v3/openapi.json,http://localhost:8080,TRUE,"", +http-patch-spring,TRUE,"",--server.port=8080,http://localhost:8080/v3/api-docs,http://localhost:8080,FALSE,"", +spring-ecommerce,TRUE,-Dfile.encoding=ISO-8859-1,--server.port=8080 --spring.datasource.host=mongodb --spring.datasource.port=27017 --spring.datasource.database=test --spring.data.mongodb.uri=mongodb://mongodb:27017/test --spring.redis.host=redis --spring.redis.port=6379 --spring.data.elasticsearch.cluster-name=elasticsearch --spring.data.elasticsearch.cluster-nodes=elasticsearch:9300 --spring.elasticsearch.rest.uris=elasticsearch:9200 --spring.data.elasticsearch.host=elasticsearch --spring.data.elasticsearch.port=9300 --spring.cache.type=NONE,http://localhost:8080/v2/api-docs,http://localhost:8080,FALSE,"","[{""name"": ""mongodb"", ""image_name"": ""mongo:7.0"", ""tmp_fs"": ""/data/db"", ""environment"": ""MONGODB_REPLICA_SET_MODE: primary;ALLOW_EMPTY_PASSWORD: yes"", ""volume"": ""../scripts/dockerize/data/additional_files/spring-ecommerce/mongo_import.sh:/docker-entrypoint-initdb.d/mongo_import.sh;../scripts/dockerize/data/additional_files/spring-ecommerce/init.json:/fixtures/init.json"", ""health_check_command"": """"}, {""name"": ""redis"", ""image_name"": ""redis:7.0.11"", ""tmp_fs"": """", ""environment"": """", ""volume"": """", ""health_check_command"": """"}, {""name"": ""elasticsearch"",""image_name"": ""docker.elastic.co/elasticsearch/elasticsearch:6.8.23"", ""tmp_fs"": ""/usr/share/elasticsearch/data"", ""environment"": ""- discovery.type=single-node;- cluster.name=elasticsearch;- ES_JAVA_OPTS=-Xms512m -Xmx512m;- xpack.security.enabled=false"", ""volume"": """", ""health_check_command"": """"}]" +quartz-manager,TRUE,,--server.port=8080 --quartz-manager.security.accounts.in-memory.users[0].username=foo --quartz-manager.security.accounts.in-memory.users[0].password=bar --quartz-manager.security.accounts.in-memory.users[0].roles[0]=admin --quartz-manager.security.accounts.in-memory.users[1].username=foo2 --quartz-manager.security.accounts.in-memory.users[1].password=bar --quartz-manager.security.accounts.in-memory.users[1].roles[0]=admin,http://localhost:8080/v3/api-docs,http://localhost:8080,FALSE,"", +microcks,TRUE,-DPOSTMAN_RUNNER_URL=http://postman:3000 -DSERVICES_UPDATE_INTERVAL='0 0 0/2 * * *' -DKEYCLOAK_URL=http://keycloak:8080 -DKEYCLOAK_PUBLIC_URL=http://localhost:${AUTH_PORT:-8081} -DENABLE_CORS_POLICY=false -DCORS_REST_ALLOW_CREDENTIALS=true -DTEST_CALLBACK_URL=http://localhost:${HOST_PORT:-8080},--server.port=8080 --spring.profiles.active=prod --grpc.server.port=0 --spring.data.mongodb.uri=mongodb://mongodb:27017/test --spring.security.oauth2.resourceserver.jwt.issuer-uri=http://localhost:${AUTH_PORT:-8081}/realms/microcks --spring.security.oauth2.resourceserver.jwt.jwk-set-uri=http://keycloak:8080/realms/microcks/protocol/openid-connect/certs,http://localhost:8080/v3/api-docs,http://localhost:8080,FALSE,"","[{""name"": ""mongodb"", ""image_name"": ""mongo:7.0"", ""tmp_fs"": ""/data/db"", ""environment"": ""MONGODB_REPLICA_SET_MODE: primary;ALLOW_EMPTY_PASSWORD: yes"", ""volume"": """", ""health_check_command"": """"},{""name"": ""keycloak"",""image_name"": ""quay.io/keycloak/keycloak:26.0.0"", ""command"":[""start-dev"", ""--hostname=http://localhost:${AUTH_PORT:-8081}"", ""--import-realm"", ""--health-enabled=true""], ""port"": ""${AUTH_PORT:-8081}:8080"", ""tmp_fs"": """", ""environment"": ""KEYCLOAK_ADMIN: 'admin';KEYCLOAK_ADMIN_PASSWORD: 'admin';KC_HEALTH_ENABLED: 'true';KC_METRICS_ENABLED: 'true'"", ""volume"": ""../scripts/dockerize/data/additional_files/microcks/microcks-realm-sample.json:/opt/keycloak/data/import/microcks-realm.json"", ""health_check_command"": [""CMD"", ""sh"", ""-c"", ""echo -e 'GET /health/live HTTP/1.1\r\nHost: localhost\r\n\r\n' > /dev/tcp/localhost/9000""]},{""name"": ""postman"", ""image_name"": ""quay.io/microcks/microcks-postman-runtime:0.6.0"", ""tmp_fs"": """", ""environment"": """", ""volume"": """", ""health_check_command"": [""CMD"", ""curl"", ""-f"", ""http://localhost:3000/health""]}]" diff --git a/scripts/dockerize/docker_generator.py b/scripts/dockerize/docker_generator.py index 42cb13d36..7dca6a2c1 100644 --- a/scripts/dockerize/docker_generator.py +++ b/scripts/dockerize/docker_generator.py @@ -55,7 +55,6 @@ def __init__(self, sut_name, expose_port): self.swagger_url = str(sut[1]['SWAGGER_URL']) if str(sut[1]['SWAGGER_URL']) != 'nan' else '' self.target_url = str(sut[1]['TARGET_URL']) if str(sut[1]['TARGET_URL']) != 'nan' else '' self.copy_additional_files = bool(sut[1]['COPY_ADDITIONAL_FILES']) - self.is_mock_oauth = bool(sut[1]['MOCK_OAUTH']) self.database_config = json.loads(sut[1]['SERVICES']) if str(sut[1]['SERVICES']) != 'nan' else [] self.depends_on = str(sut[1]['DEPENDS_ON']).split(';') if str(sut[1]['DEPENDS_ON']) != 'nan' else [] # def prepare_run_docker(self): @@ -124,7 +123,6 @@ def generate_docker_compose(self): params = { 'SUT_NAME': self.sut_name, 'EXPOSE_PORT': self.expose_port, - 'MOCK_OAUTH': self.is_mock_oauth, 'DEPENDS_ON': self.depends_on }