
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
A gateway server and accompanying JavaScript client API to monitor EPICS Channel Access over the web.
!https://github.com/JeffersonLab/epics2web/raw/main/doc/img/MonitorTest.png?raw=true "MonitorTest"
The epics2web application allows users to monitor EPICS PVs from the web using Web Sockets and a REST web service endpoint. The application leverages the Java https://github.com/epics-base/jca library and is designed to run on Apache Tomcat.
git clone https://github.com/JeffersonLab/epics2web cd epics2web
docker compose up
http://localhost:8080/epics2web/test-camonitor
PV name: HELLO
See: https://gist.github.com/slominskir/a7da801e8259f5974c978f9c3091d52c
Note: epics2web also works and was tested with GlassFish, and presumably works with WildFly or any other Java web application server that supports Web Sockets.
Note: The dependency jars are included in the war file that is generated by the build. You can copy the dependency jar files downloaded by Gradle to the Tomcat lib directory and change the build.gradle script to use providedCompile instead of implementation if you'd prefer to include the dependencies that way.
https://github.com/JeffersonLab/epics2web/wiki/API-Reference
This application uses the https://github.com/epics-base/jca library. It requires a working EPICS channel access environment with the environment variable EPICS_CA_ADDR_LIST set. See Also: https://github.com/JeffersonLab/epics2web/wiki/Advanced-Configuration.
When proxying epics2web it is sometimes useful to have multiple instances accessible via the same host via separate context paths. In order to return correct links to resources an instance proxied with a namespacing prefix needs to be aware of the prefix. The environment variable CONTEXT_PREFIX does this. For example at Jefferson Lab we use a single proxy server for multiple departments each with their own instance of epics2web, and each configured with a prefix such as "/fel", "/chl", "/itf", and "/srf" ("/ops" uses default/e***y prefix).
This app is designed to run on Tomcat so https://tomcat.apache.org/tomcat-9.0-doc/logging.html applies. We use the built-in JVM logging library, which Tomcat uses with some slight modifications to support separate classloaders. In the past we bundled an application https://github.com/JeffersonLab/epics2web/blob/956894699ef1b303907a04720aeb50260ffa72b1/src/main/resources/logging.properties inside the epics2web.war file. We no longer do that because it then appears to require repackaging/rebuilding a new version of the app to modify the logging config as the app bundled config overrides the global Tomcat config at conf/logging.properties. The recommend logging strategy is to now make configuration in the global Tomcat config so as to make it easy to modify logging levels. An app specific handler can be created. The global configuration location is generally set by the Tomcat default start script via JVM system properties. The system properties should look something like:
-Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManagerThe contents of the logging.properties should be modfied to look something like:
handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, 5epics2web.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler 5epics2web.org.apache.juli.FileHandler.level = FINEST 5epics2web.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 5epics2web.org.apache.juli.FileHandler.prefix = epics2web. org.jlab.epics2web.handlers = 5epics2web.org.apache.juli.FileHandler org.jlab.epics2web.level = ALL
Note: This example is for older versions of Tomcat as newer version use an AsyncFileHandler. Refer to your logging configuration guide for your version of Tomcat.
This project is built with Java 21 (compiled to Java 21 bytecode), and uses the https://gradle.org/ build tool to automatically download dependencies and build the project from source:
git clone https://github.com/JeffersonLab/epics2web cd epics2web gradlew build
Note: If you do not already have Gradle installed, it will be installed automatically by the wrapper script included in the source
Note for JLab On-Site Users: Jefferson Lab has an intercepting https://gist.github.com/slominskir/92c25a033db93a90184a5994e71d0b78
See: https://gist.github.com/slominskir/a7da801e8259f5974c978f9c3091d52c#development-quick-reference
docker compose -f build.yaml up
Wait for containers to start then:
gradlew integrationTest
At JLab this app is found at epicsweb.jlab.org/epics2web, plus other fiefdom specific subpaths, and internally at epicswebtest9.acc.jlab.org/epics2web. However, the epicsweb server is a proxy for epicswebops9.acc.jlab.org, epicswebops99.acc.jlab.org, epicswebchl9.acc.jlab.org, epicsweblerf9.acc.jlab.org, epicswebsrf9.acc.jlab.org and epicswebuitf9.acc.jlab.org. Additionally, the context root for each is adjusted with a prefix such that all servers can be reached from a single namespace. The context root prefixes are /, /ops2, /chl, /fel, /srf, and /itf respectively. Tomcat interprets context roots from war file name unless overridden elsewhere. Therefore each war must be prefixed with <prefix>#. Use wget or the like to grab the release war file. Don't download directly into webapps dir as file scanner may atte*** to deploy before fully downloaded. Be careful of previous war file as by default wget won't overrwite. The war file should be attached to each release, so right click it and copy location (or just update version in path provided in the example below).
A script is provided to automate the deployment. As root run:
cd /root/setup ./deploy.sh epics2web {version}
Or manually execute (CHL fiefdom shown):
cd /tmp rm epics2web.war wget https://github.com/JeffersonLab/wmenu/releases/download/v1.2.3/epics2web.war mv epics2web.war chl#epics2web.war mv chl#epics2web.war /opt/tomcat/current/webapps
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务