我正在尝试在 docker 上创建一个 HSQL 映像并将其连接到 hybris :
version: '3'
services:
hybris_hsql:
# will build ./docker/hybris/Dockerfile
build:
context: ./
dockerfile: ./docker/hsql/Dockerfile
mem_reservation: 2g
ports:
- "3308:3308"
volumes:
- hsql-data:/var/opt/hsqldb/data/db0/db0
hybris_docker:
# will build ./docker/hybris/Dockerfile
build:
context: ./
dockerfile: ./docker/hybris/Dockerfile
depends_on:
- hybris_hsql
mem_reservation: 6g
ports:
- "9001:9001"
- "9002:9002"
- "8000:8000"
volumes:
- hybris-data:/hybris/data
- hybris-media:/var/lib/media
volumes:
hsql-data:
hybris-data:
hybris-media:
server.database.0 = file:/var/opt/hsqldb/data/db0/db0
server.dbname.0 = db0
FROM openjdk:11-jdk-slim
ENV MVN_CENTRAL_URL https://repo1.maven.org/maven2
ENV HSQLDB_MVN_GRP org/hsqldb
ENV HSQLDB_VERSION 2.4.1
ENV LOG4J_VERSION 1.2.17
RUN apt-get update \
&& apt-get install -y ca-certificates \
&& update-ca-certificates \
&& apt-get install -y wget \
&& mkdir -p /opt/hsqldb/lib \
&& wget -O /opt/hsqldb/lib/hsqldb.jar \
"${MVN_CENTRAL_URL}/${HSQLDB_MVN_GRP}/hsqldb/${HSQLDB_VERSION}/hsqldb-${HSQLDB_VERSION}.jar" \
&& wget -O /opt/hsqldb/lib/sqltool.jar \
"${MVN_CENTRAL_URL}/${HSQLDB_MVN_GRP}/sqltool/${HSQLDB_VERSION}/sqltool-${HSQLDB_VERSION}.jar" \
&& wget -O /opt/hsqldb/lib/log4j.jar \
"${MVN_CENTRAL_URL}/log4j/log4j/${LOG4J_VERSION}/log4j-${LOG4J_VERSION}.jar" \
&& mkdir -p /etc/opt/hsqldb/conf \
&& mkdir -p /var/opt/hsqldb/sql \
&& mkdir -p /var/opt/hsqldb/data \
&& mkdir -p /var/opt/hsqldb/run
RUN addgroup hsqldb
RUN useradd -g hsqldb hsqldb
COPY docker/hsql/conf/ /etc/opt/hsqldb/conf/
RUN chown hsqldb:hsqldb -R /opt/hsqldb \
&& chown hsqldb:hsqldb -R /var/opt/hsqldb \
&& chown hsqldb:hsqldb -R /etc/opt/hsqldb
EXPOSE 9001
USER hsqldb
CMD [ "java", "-cp", "/opt/hsqldb/lib/*:/etc/opt/hsqldb/conf", \"org.hsqldb.server.Server", "--props", \
"/etc/opt/hsqldb/conf/server.properties"]
当我在 hybris 中初始化时,它连接到 HSQL 数据库并创建数据,但 HSQL 文件未在安装位置生成。发布 docker-compose down 所有数据都丢失了。