# # =============================== # Server Properties #=https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.server # =============================== spring.application.name=bytedesk application.title=https://www.weiyuai.cn application.version=0.5.0 # server.host=127.0.0.1 server.port=9003 # =============================== #=freemarker # =============================== spring.freemarker.template-loader-path=classpath:/templates/ftl/ spring.freemarker.suffix=.ftl # 仅适用于测试阶段,线上注释掉 # spring.freemarker.cache=false spring.freemarker.charset=UTF-8 spring.freemarker.content-type=text/html spring.freemarker.expose-request-attributes=true spring.freemarker.expose-session-attributes=true # =============================== #=bytedesk # =============================== bytedesk.debug=true # default admin username/password/email/mobile info # 默认管理员用户名密码 bytedesk.email=admin@email.com bytedesk.password=admin # 创建/导入成员时,自动生成用户的密码 bytedesk.password-default=123456 # 超级管理员昵称 bytedesk.nickname=SuperAdmin # system use mobile number 12345678000~12345678999 as test mobile number, verification code is 123456 # 系统默认使用 12345678000~12345678999 作为测试手机号,验证码为123456 # 默认管理员手机号 bytedesk.mobile=12345678000 # 白名单手机号默认发送短信验证码为:bytedesk.mobile-code 中设置的值,用于测试,否则随机发送6位验证码 bytedesk.mobile-whitelist=18888888000,18888888001,18888888002,18888888003,18888888004,12345678001,12345678002 bytedesk.email-whitelist=100@email.com,101@email.com,102@email.com,001@email.com,002@email.com # 白名单和默认用户-手机号验证码,用于测试,否则随机发送6位验证码 bytedesk.validate-code=123456 # 默认生成组织昵称和唯一代码 bytedesk.organization-name=MyCompany bytedesk.organization-code=bytedesk # bytedesk.timezone=GMT+8 bytedesk.java-ai=false bytedesk.python-ai=true # 配置邮件发送方式,默认使用javamail,可选值:javamail/aliyun # bytedesk.email-type=aliyun bytedesk.email-type=javamail # 是否支持注册,默认不允许注册 bytedesk.enable-registration=false # =============================== #=bytedesk cors config # =============================== bytedesk.cors-allowed-origins=* # bytedesk.cors-allowed-origins=http://127.0.0.1:9006 # =============================== #=bytedesk jwt config # =============================== # please change jwt secret key to your own, length=64 # use this: https://www.browserling.com/tools/random-hex bytedesk.jwt-secret-key=1dfaf8d004207b628a9a6b859c429f49a9a7ead9fd8161c1e60847aeef06dbd2 # 2592000000 # 30 days, milliseconds bytedesk.jwt-expiration=2592000000 # 5184000000 # 60 days, milliseconds bytedesk.jwt-refresh-token-expiration=5184000000 # =============================== #=bytedesk cache config # =============================== # 0: no cache, 1: caffeine cache, 2: caffeine + redis cache bytedesk.cache-level=0 bytedesk.cache-prefix=bytedeskim # cache.caffeine.maximumSize=1000 # cache.caffeine.expireAfterWriteSeconds=5 # bytedesk.redis-stream-key=bytedeskim:stream # bytedesk.redis-pubsub-channel=bytedeskim:pubsub # =============================== #=bytedesk upload config # =============================== bytedesk.upload-type=local # 注意后面没有 '/' bytedesk.upload-dir=uploader # 注意后面没有 '/' bytedesk.upload-url=http://127.0.0.1:9003 # =============================== #=bytedesk kbase config # =============================== # theme: default/eduport/social/kbdoc bytedesk.kbase.theme=default bytedesk.kbase.html-path=helpcenter # bytedesk.kbase.template-path=classpath:/templates/ftl/kbase bytedesk.kbase.api-url=http://127.0.0.1:9003 # =============================== #=bytedesk ip2region config # https://github.com/lionsoul2014/ip2region/blob/master/binding/java/ReadMe.md # =============================== # bytedesk.ip2region-db-path=ip2region.db # =============================== #=com.bytedesk.socket module # =============================== bytedesk.socket.host=0.0.0.0 # bytedesk.socket.port=9883 bytedesk.socket.websocket-port=9885 bytedesk.socket.leak-detector-level=SIMPLE bytedesk.socket.parent-event-loop-group-thread-count=1 bytedesk.socket.child-event-loop-group-thread-count=8 bytedesk.socket.max-payload-size=10240 # =============================== #=com.bytedesk.cluster module # =============================== bytedesk.cluster=false # bytedesk.cluster-nodes=127.0.0.1,IP_ADDRESS,IP_ADDRESS # bytedesk.cluster.host=230.0.0.0 # bytedesk.cluster.port=6781 # bytedesk.cluster.client-port=6771 # =============================== #= push # =============================== bytedesk.push.apns.bundle-id=com.kefux.im bytedesk.push.apns.p12-url=123.p12 bytedesk.push.apns.p12-password=123456 # =============================== #=logging # https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.core # 五种level:TRACE、DEBUG、INFO、WARN和ERROR # =============================== # 会打印sqlLog # debug=true # trace=true logging.level.web=DEBUG logging.level.org.springframework.security.web.FilterChainProxy=DEBUG # logging.level.org.springframework.messaging=WARN # logging.level.org.springframework.web=INFO # logging.level.org.springframework.security=INFO # logging.level.root=DEBUG logging.level.com.bytedesk.ai=DEBUG logging.level.com.bytedesk.core=DEBUG logging.level.com.bytedesk.kbase=DEBUG logging.level.com.bytedesk.service=DEBUG logging.level.com.bytedesk.social=DEBUG logging.level.com.bytedesk.team=DEBUG logging.level.com.bytedesk.ticket=DEBUG logging.level.com.bytedesk.starter=DEBUG logging.file.name=logs/bytedeskim.log logging.file.max-size=10MB logging.file.max-history=5 # 2024-09-19T13:07:39.031+08:00 INFO 4043 --- [bytedesk] [ main] liquibase.util : UPDATE SUMMARY # logging.pattern.console=[TRACEID:%X{traceId}] %clr(%5p) %d{HH:mm:ss.SSS} %class{-1}: %msg%xEx%n logging.pattern.console=[TRACEID:%X{traceId}] %clr(%d{${LOG_DATEFORMAT_PATTERN:yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx} logging.pattern.file=[TRACEID:%X{traceId}]-%clr(%d{${LOG_DATEFORMAT_PATTERN:yyyy-MM-dd HH:mm:ss.SSS}}){faint}-%clr(${LOG_LEVEL_PATTERN:%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx} # =============================== #= alibaba druid # http://127.0.0.1:9003/druid # https://github.com/alibaba/druid/wiki/DruidDataSource%E9%85%8D%E7%BD%AE%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8 # =============================== spring.datasource.type=com.alibaba.druid.pool.DruidDataSource # druid properties spring.datasource.druid.initial-size=10 spring.datasource.druid.min-idle=10 spring.datasource.druid.max-active=100 spring.datasource.druid.max-wait=60000 spring.datasource.druid.time-between-eviction-runs-millis=60000 spring.datasource.druid.min-evictable-idle-time-millis=300000 spring.datasource.druid.validation-query=SELECT 'x' spring.datasource.druid.test-while-idle=true spring.datasource.druid.test-on-borrow=false spring.datasource.druid.test-on-return=false spring.datasource.druid.stat-view-servlet.enabled=true spring.datasource.druid.stat-view-servlet.url-pattern=/druid/* spring.datasource.druid.stat-view-servlet.login-username=admin@email.com spring.datasource.druid.stat-view-servlet.login-password=admin # spring.datasource.druid.stat-view-servlet.reset-enable=false # spring.datasource.druid.stat-view-servlet.allow=127.0.0.1 # spring.datasource.druid.stat-view-servlet.deny= spring.datasource.druid.filters=config,stat spring.datasource.druid.filter.stat.log-slow-sql=true spring.datasource.druid.filter.stat.slow-sql-millis=1 # spring.datasource.druid.web-stat-filter.enabled=true # spring.datasource.druid.web-stat-filter.url-pattern=/* # spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/* # =============================== #= h2 # https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.data # =============================== # http://127.0.0.1:9003/h2-console # spring.h2.console.enabled=true # spring.h2.console.path=/h2-console # spring.h2.console.settings.trace=false # spring.h2.console.settings.web-allow-others=false # # # # spring.datasource.url=jdbc:h2:mem:testdb # spring.datasource.url=jdbc:h2:file:./h2db/weiyuim # spring.datasource.driverClassName=org.h2.Driver # spring.datasource.username=sa # spring.datasource.password=sa # spring.jpa.database-platform=org.hibernate.dialect.H2Dialect # spring.jpa.defer-datasource-initialization=true # =============================== #= mysql # https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.data # =============================== spring.datasource.url=jdbc:mysql://127.0.0.1:3306/bytedesk_im # spring.datasource.url=jdbc:mysql://mysql:3306/bytedesk_im # docker spring.datasource.username=root spring.datasource.password=r8FqfdbWUaN3 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.jpa.database=mysql spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate # =============================== #= postgresql # https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.data # 因本地占用,将5432改为5433 # =============================== # spring.datasource.url=jdbc:postgresql://127.0.0.1:5433/bytedesk_im # spring.datasource.username=postgres # spring.datasource.password=r8FqfdbWUaN3 # spring.datasource.driver-class-name=org.postgresql.Driver # spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect # spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate # =============================== #=spring-boot-starter-data-jpa # https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.data # =============================== # 生产环境关闭update模式,使用validate # update/none/validate/create/create-drop spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=false spring.jpa.properties.hibernate.format_sql=false spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true # https://www.cnblogs.com/suizhikuo/p/16997225.html spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=GMT+8 # =============================== #=spring-boot-starter-cache # https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.cache # =============================== # disable caching: none, https://docs.spring.io/spring-boot/docs/3.2.0/reference/htmlsingle/#io.caching.provider.none # https://docs.spring.io/spring-boot/reference/io/caching.html # https://docs.spring.io/spring-framework/reference/integration/cache/annotations.html#cache-spel-context spring.cache.type=none # spring.cache.type=redis # spring.cache.type=caffeine # spring.cache.caffeine.spec=maximumSize=100,expireAfterAccess=5m # spring.cache.redis.cache-null-values=false spring.cache.redis.use-key-prefix=true spring.cache.redis.key-prefix=bytedeskim: # # =============================== #=spring-boot-starter-data-redis # https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.data # =============================== spring.data.redis.database=0 spring.data.redis.host=127.0.0.1 # spring.data.redis.host=redis/redis-stack-server # docker spring.data.redis.port=6379 spring.data.redis.password=qfRxz3tVT8Nh # disable redis repository spring.data.redis.repositories.enabled=false # redis pool config common.redis.pool-config.maxIdle=64 common.redis.pool-config.maxTotal=64 common.redis.pool-config.minIdle=8 # =============================== #=spring-boot-starter-data-rest # http://127.0.0.1:9003/rest/api/profile # https://docs.spring.io/spring-data/rest/reference/index.html # https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#application-properties.data.spring.data.rest.base-path # =============================== spring.data.rest.base-path=/api # spring.data.rest.default-page-size=20 # spring.data.rest.max-page-size= # spring.data.rest.page-param-name=page # spring.data.rest.limit-param-name=size # spring.data.rest.sort-param-name=sort spring.data.rest.return-body-on-create=true spring.data.rest.return-body-on-update=true # spring.data.rest.sort-param-name= # =============================== #=spring-boot-starter-data-security # =============================== # properties: https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.security # spring.security.basic.path=/swagger-ui.html # spring.security.basic.enabled=true # spring.security.user.name=admin@email.com # spring.security.user.password=admin # =============================== #=spring-boot-starter-actuator # https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.actuator # https://docs.spring.io/spring-boot/docs/current/actuator-api/htmlsingle/#prometheus # https://docs.micrometer.io/micrometer/reference/implementations/prometheus.html # http://127.0.0.1:9003/actuator # =============================== management.endpoints.web.base-path=/actuator management.endpoints.web.exposure.include=* management.metrics.tags.application=bytedesk # management.info.env.enabled=true # http://127.0.0.1:9003/actuator/prometheus management.endpoint.prometheus.enabled=true management.prometheus.metrics.export.enabled=true # # =============================== #=spring-boot-starter-admin-client # https://github.com/codecentric/spring-boot-admin?tab=readme-ov-file # https://docs.spring-boot-admin.com/current/getting-started.html # =============================== spring.boot.admin.client.url=http://127.0.0.1:9003 # spring.boot.admin.ui.public-url=http://127.0.0.1:9003/actuator/admin # =============================== #=springdoc # https://springdoc.org/#properties # http://127.0.0.1:9003/swagger-ui/index.html # http://127.0.0.1:9003/v3/api-docs # =============================== springdoc.show-actuator=false springdoc.swagger-ui.enabled=true springdoc.swagger-ui.path=/index.html springdoc.api-docs.enabled=true springdoc.api-docs.path=/v3/api-docs # =============================== #=spring-boot-devtools # https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.devtools # =============================== spring.devtools.restart.poll-interval=2s spring.devtools.restart.quiet-period=1s # # =============================== # = Apache ActiveMQ Artemis logger levels # =============================== # https://activemq.apache.org/components/artemis/documentation/latest/logging.html # https://codeaches.com/spring-boot/embedded-activemq-artemis-jms-broker logging.level.org.apache.activemq.artemis.core.server=WARN logging.level.org.apache.activemq.artemis.utils=WARN logging.level.org.apache.activemq.artemis.jms=WARN logging.level.org.apache.activemq.audit.base=WARN logging.level.org.apache.activemq.audit.message=WARN # =============================== # = spring-boot-starter-artemis # = jms artemis # https://spring.io/guides/gs/messaging-jms # https://docs.spring.io/spring-boot/reference/messaging/jms.html # https://activemq.apache.org/components/artemis/documentation/latest/index.html # spring.jms.pub-sub-domain=true # =============================== spring.artemis.mode=embedded # spring.artemis.mode=native # spring.artemis.broker-url=tcp://127.0.0.1:61617 # spring.artemis.user=admin # spring.artemis.password=admin # =============================== # spring mail # https://springdoc.cn/spring-boot/application-properties.html#appendix.application-properties.mail # =============================== spring.mail.host=smtp.qq.com spring.mail.port=465 # spring.mail.username= # spring.mail.password= spring.mail.data-encoding=UTF-8 spring.mail.protocol=smtps spring.mail.properties.mail.smtp.connectiontimeout=5000 spring.mail.properties.mail.smtp.timeout=3000 spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.starttls.required=true # # =============================== # = Quartz # https://github.com/quartz-scheduler/quartz # https://docs.spring.io/spring-boot/reference/io/quartz.html # https://medium.com/@ChamithKodikara/spring-boot-2-quartz-2-scheduler-integration-a8eaaf850805 # SpringBoot官方说明:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-quartz.html # Quartz官方文档:https://www.quartz-scheduler.org/documentation/2.3.1-SNAPSHOT/tutorials/index.html # =============================== spring.quartz.job-store-type=jdbc # # 3种模式: ALWAYS、EMBEDDED、NEVER # 首次启动时创建表,但每次都会清空数据,初始化之后,需要修改为never spring.quartz.jdbc.initialize-schema=always # spring.quartz.jdbc.initialize-schema=never spring.quartz.wait-for-jobs-to-complete-on-shutdown=true # spring.quartz.properties.org.quartz.scheduler.instanceName=BytedeskScheduler spring.quartz.properties.org.quartz.scheduler.instanceId=AUTO #spring.quartz.properties.org.quartz.scheduler.instanceIdGenerator.class=io.xiaper.schedule.util.CustomQuartzInstanceIdGenerator # spring.quartz.properties.org.quartz.jobStore.isClustered=true spring.quartz.properties.org.quartz.jobStore.tablePrefix=QRTZ_ # spring.quartz.properties.org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX spring.quartz.properties.org.quartz.jobStore.class=org.springframework.scheduling.quartz.LocalDataSourceJobStore spring.quartz.properties.org.quartz.jobStore.clusterCheckinInterval=10000 spring.quartz.properties.org.quartz.jobStore.useProperties=false # spring.quartz.properties.org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool spring.quartz.properties.org.quartz.threadPool.threadCount=5 spring.quartz.properties.org.quartz.threadPool.threadPriority=5 spring.quartz.properties.org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true # # =============================== # = multipart file uploads # =============================== spring.servlet.multipart.enabled=true # Write files to disk if the file size is more than 2KB. spring.servlet.multipart.file-size-threshold=2KB # The intermediate disk location where the uploaded files are written # jetty里面开启这个配置会报错 # spring.servlet.multipart.location=/tmp # Maximum file size that can be uploaded spring.servlet.multipart.max-file-size=100MB # Maximum allowed multipart request size spring.servlet.multipart.max-request-size=100MB # =============================== # = spring-session-data-redis # https://docs.spring.io/spring-session/reference/guides/boot-redis.html # =============================== # server.servlet.session.cookie.name=MY_SESSION_COOKIE # server.servlet.session.cookie.max-age=3600 # server.servlet.session.cookie.domain # server.servlet.session.cookie.path # not working? # spring.session.redis.namespace=bytedeskim # # =============================== # = ai # =============================== # spring.mvc.async.request-timeout=10000 logging.level.org.springframework.ai.chat.client.advisor=DEBUG # openai spring.ai.openai.chat.enabled=false spring.ai.openai.embedding.enabled=false spring.ai.openai.image.enabled=false spring.ai.openai.audio.transcription.enabled=false spring.ai.openai.audio.speech.enabled=false spring.ai.openai.moderation.enabled=false spring.ai.openai.api-key=YOUR_API_KEY spring.ai.openai.endpoint=YOUR_ENDPOINT # azure openai spring.ai.azure.openai.chat.enabled=false spring.ai.azure.openai.api-key=YOUR_API_KEY spring.ai.azure.openai.endpoint=YOUR_ENDPOINT # spring.ai.azure.openai.chat.options.deployment-name=gpt-4o # spring.ai.azure.openai.chat.options.temperature=0.7 spring.ai.azure.openai.embedding.enabled=false spring.ai.azure.openai.image.enabled=false # transformers spring.ai.embedding.transformer.enabled=false # spring.ai.embedding.transformer.onnx.modelUri=https://huggingface.co/intfloat/e5-small-v2/resolve/main/model.onnx # spring.ai.embedding.transformer.tokenizer.uri=https://huggingface.co/intfloat/e5-small-v2/raw/main/tokenizer.json # mistralai spring.ai.mistralai.chat.enabled=false spring.ai.mistralai.embedding.enabled=false # qianfan spring.ai.qianfan.chat.enabled=false spring.ai.qianfan.embedding.enabled=false # bedrock spring.ai.bedrock.converse.chat.enabled=false # moonshot # https://docs.spring.io/spring-ai/reference/api/chat/moonshot-chat.html spring.ai.moonshot.chat.enabled=true # spring.ai.moonshot.base-url=api.moonshot.cn spring.ai.moonshot.api-key=sk-placeholder # 或 export SPRING_AI_MOONSHOT_API_KEY= # spring.ai.moonshot.chat.base-url= # spring.ai.moonshot.chat.api-key= # 三种model: moonshot-v1-128k、moonshot-v1-32k、moonshot-v1-8k spring.ai.moonshot.chat.options.model=moonshot-v1-8k spring.ai.moonshot.chat.options.temperature=0.7 # minimax # https://platform.minimaxi.com/user-center/basic-information/interface-key spring.ai.minimax.chat.enabled=true spring.ai.minimax.api-key=placeholder # spring.ai.minimax.chat.options.model=minimax-v1 # zhipuai # https://open.bigmodel.cn/overview # https://docs.spring.io/spring-ai/reference/api/embeddings/zhipuai-embeddings.html # https://docs.spring.io/spring-ai/reference/api/chat/zhipuai-chat.html spring.ai.zhipuai.chat.enabled=true # spring.ai.zhipuai.chat.base-url=URL_ADDRESS spring.ai.zhipuai.api-key=f03410085cb038ec41098ae7ca6ef047.TrJMIwAULDG12345 # 免费模型:https://open.bigmodel.cn/dev/api#glm-4 spring.ai.zhipuai.chat.options.model=glm-4-flash spring.ai.zhipuai.chat.options.temperature=0.7 # # ollama: # https://docs.spring.io/spring-ai/reference/api/chat/ollama-chat.html spring.ai.ollama.base-url=http://127.0.0.1:11434 spring.ai.ollama.chat.enabled=true spring.ai.ollama.chat.options.model=qwen:7b spring.ai.ollama.chat.options.temperature=0.7 # spring.ai.ollama.chat.options.numa=false # # https://docs.spring.io/spring-ai/reference/api/embeddings/ollama-embeddings.html spring.ai.ollama.embedding.enabled=false # https://github.com/ollama/ollama?tab=readme-ov-file#model-library spring.ai.ollama.embedding.options.model=mistral # spring.ai.ollama.embedding.options.numa=false # # https://docs.spring.io/spring-ai/reference/api/vectordbs/pgvector.html#pgvector-properties # spring.ai.vectorstore.pgvector.index-type=HNSW # spring.ai.vectorstore.pgvector.distance-type=COSINE_DISTANCE # spring.ai.vectorstore.pgvector.dimensions=1536 # # https://docs.spring.io/spring-ai/reference/api/vectordbs/redis.html spring.ai.vectorstore.redis.initialize-schema=false spring.ai.vectorstore.redis.uri=redis://127.0.0.1:6379 spring.ai.vectorstore.redis.index=bytedesk_vs_index spring.ai.vectorstore.redis.prefix=bytedesk_vs_prefix: # # =============================== # = liquibase # https://contribute.liquibase.com/extensions-channels/directory/integration-docs/springboot/configuration/ # =============================== spring.liquibase.enabled=true spring.liquibase.change-log=classpath:db/changelog/master.xml # =============================== # = docker compose # docker compose up # when the application starts # docker compose down # when the application shuts down #= 跟模块 spring-boot-docker-compose 配合使用 # https://spring.io/guides/topicals/spring-boot-docker # https://spring.io/blog/2023/06/21/docker-compose-support-in-spring-boot-3-1 # https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-docker-compose # https://hub.docker.com/r/jackning/bytedesk # https://springdoc.cn/docker-compose-support-spring-boot/ # https://docs.spring.io/spring-boot/docs/3.2.0/reference/htmlsingle/#features.docker-compose # =============================== spring.docker.compose.enabled=false # spring.docker.compose.file=compose.yaml # spring.docker.compose.enabled=true # spring.docker.compose.profiles.active=myprofile