Docker Compose: Difference between revisions
Jump to navigation
Jump to search
Line 221: | Line 221: | ||
# built on: Sat, Oct 10 2020, 10:10 +0000 by: [email protected] | # built on: Sat, Oct 10 2020, 10:10 +0000 by: [email protected] | ||
################################################################################ | ################################################################################ | ||
</source> | |||
==log4j2.xml== | |||
<source lang="xml"> | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<Configuration> | |||
<Properties> | |||
<Property name="academia.log.format">%d{MMM dd, yyyy HH:mm:ss a} %c [METHOD: %M , LINE: %L]%n[%-5p][%t] %m%n</Property> | |||
<Property name="academia.log.file.gz">${academia.log.dir}/%d{yyyyMM}/SPIDER-%d{yyyyMMdd}-%i.log.gz</Property> | |||
<Property name="academia.log.dir">${sys:user.home}/.chorke/academia/var/log/http</Property> | |||
<Property name="academia.log.rolling">${env:CHORKE_LOG_ROLLING:-INFO}</Property> | |||
<Property name="academia.log.console">${env:CHORKE_LOG_CONSOLE:-INFO}</Property> | |||
<Property name="academia.log.file">${academia.log.dir}/SPIDER.log</Property> | |||
</Properties> | |||
<Appenders> | |||
<RollingFile name="file" fileName="${academia.log.file}" filePattern="${academia.log.file.gz}" ignoreExceptions="false"> | |||
<PatternLayout pattern="${academia.log.format}"/> | |||
<Policies> | |||
<SizeBasedTriggeringPolicy size="10 MB"/> | |||
<TimeBasedTriggeringPolicy interval="1"/> | |||
<OnStartupTriggeringPolicy /> | |||
</Policies> | |||
<DefaultRolloverStrategy max="20"/> | |||
</RollingFile> | |||
<Console name="console" target="SYSTEM_OUT"> | |||
<PatternLayout pattern="${academia.log.format}"/> | |||
</Console> | |||
<Async name="async"> | |||
<AppenderRef ref="console" level="${academia.log.console}"/> | |||
<AppenderRef ref="file" level="${academia.log.rolling}"/> | |||
</Async> | |||
</Appenders> | |||
<Loggers> | |||
<Logger name="org.chorke.academia.http.spider.mapper" level="WARN"/> | |||
<Logger name="springfox.documentation" level="WARN"/> | |||
<Logger name="edu.uci.ics.crawler4j" level="ERROR"/> | |||
<Logger name="org.apache.activemq" level="WARN"/> | |||
<Logger name="org.chorke.academia" level="INFO"/> | |||
<Logger name="org.springframework" level="WARN"/> | |||
<Logger name="org.apache.camel" level="WARN"/> | |||
<Logger name="org.thymeleaf" level="WARN"/> | |||
<Logger name="javax.servlet" level="WARN"/> | |||
<Logger name="bitronix.tm" level="WARN"/> | |||
<Logger name="org.jasypt" level="WARN"/> | |||
<Logger name="org.quartz" level="WARN"/> | |||
<Logger name="com.zaxxer" level="WARN"/> | |||
<Root level="INFO"> | |||
<AppenderRef ref="async"/> | |||
</Root> | |||
</Loggers> | |||
</Configuration> | |||
</source> | </source> | ||
Revision as of 06:33, 1 February 2021
Dockerfile
FROM openjdk:8-jdk-alpine
MAINTAINER Chorke, Inc.<[email protected]>
ENV CHORKE_HOME /var/chorke
ENV SPRING_PROFILES_ACTIVE docker
ENV CHORKE_DS_POOLNAME java:jboss/datasources/H2_http_spider_devDS
ENV CHORKE_DS_JDBC_URL jdbc:h2:file:\${user.home}/.chorke/academia/var/h2/\${academia.datasource.database};\
db_close_on_exit=false;mode=MySQL;user=\${academia.datasource.username};password=\${academia.datasource.password}
ENV CHORKE_DS_DBDRIVER org.h2.Driver
ENV CHORKE_DS_DATABASE academia
ENV CHORKE_DS_USERNAME academia
ENV CHORKE_DS_PASSWORD academia
ENV CHORKE_DS_SQLQUERY SELECT 1
ENV CHORKE_H2_WEBADMIN false
ENV CHORKE_H2_ALLOWALL false
ENV CHORKE_JPA_DIALECT org.hibernate.dialect.H2Dialect
ENV CHORKE_JPA_SHOWSQL false
ENV CHORKE_GQL_ENABLED true
ENV CHORKE_GQL_BROWSER true
ENV CHORKE_LIQ_CONTEXT dev
ENV CHORKE_LOG_ROLLING WARN
ENV CHORKE_LOG_CONSOLE OFF
RUN mkdir -p $CHORKE_HOME
WORKDIR $CHORKE_HOME
COPY ./*.jar $CHORKE_HOME/chorke.jar
RUN chmod 755 $CHORKE_HOME/chorke.jar
RUN chmod 644 -R $CHORKE_HOME
VOLUME $HOME/.chorke/academia
EXPOSE 1983
ENTRYPOINT ["java", "-jar", "chorke.jar"]
docker-compose.yml
version: "3.9"
services:
web:
build:
context: .
dockerfile: Dockerfile
container_name: crawler
ports:
- "127.0.0.1:1983:1983"
labels:
org.chorke.academia.http.spider: "Academia Web Crawler"
depends_on:
- db
- redis
environment:
- CHORKE_DS_POOLNAME=java:jboss/datasources/PG_http_spider_devDS
- CHORKE_DS_JDBC_URL=jdbc:postgresql://db:5432/academia
- CHORKE_DS_DBDRIVER=org.postgresql.Driver
- CHORKE_DS_DATABASE=academia
- CHORKE_DS_USERNAME=academia
- CHORKE_DS_PASSWORD=academia
- CHORKE_DS_SQLQUERY=SELECT 1
- CHORKE_H2_WEBADMIN=false
- CHORKE_H2_ALLOWALL=false
- CHORKE_JPA_DIALECT=org.hibernate.dialect.PostgreSQLDialect
- CHORKE_JPA_SHOWSQL=false
- CHORKE_GQL_ENABLED=true
- CHORKE_GQL_BROWSER=true
- CHORKE_LIQ_CONTEXT=dev
- CHORKE_LOG_ROLLING=WARN
- CHORKE_LOG_CONSOLE=OFF
redis:
container_name: redis
image: redis
networks:
default:
aliases:
- redis.academia.chorke.org
db:
image: 'postgres:13.1-alpine'
container_name: db
environment:
- POSTGRES_PASSWORD=academia
- POSTGRES_USER=academia
- POSTGRES_DB=academia
networks:
default:
aliases:
- db.academia.chorke.org
networks:
default:
ipam:
config:
- subnet: 10.20.21.0/24
application-docker.yml
################################################################################
# application snake yaml properties
################################################################################
academia:
env:
user:
home: ${user.home}
mode: dev
name: ${user.name}
temp: ${java.io.tmpdir}
datasource:
url: ${CHORKE_DS_JDBC_URL}
database: ${CHORKE_DS_DATABASE}
username: ${CHORKE_DS_USERNAME}
password: ${CHORKE_DS_PASSWORD}
poolname: ${CHORKE_DS_POOLNAME}
server:
tomcat:
basedir: ./target/
spring:
thymeleaf:
mode: HTML
prefix: classpath:/META-INF/thymeleaf/
datasource:
type: com.zaxxer.hikari.HikariDataSource
url: ${academia.datasource.url}
username: ${academia.datasource.username}
password: ${academia.datasource.password}
driver-class-name: ${CHORKE_DS_DBDRIVER}
hikari:
pool-name: ${academia.datasource.poolname}
connection-test-query: ${CHORKE_DS_SQLQUERY}
auto-commit: false
logging:
level:
org.springframework: WARN
org.chorke: INFO
---
spring:
profiles: dev
logging:
level:
org.springframework: WARN
org.chorke: INFO
---
spring:
profiles: uat
logging:
level:
org.springframework: WARN
org.chorke: WARN
---
spring:
profiles: pro
logging:
level:
org.springframework: WARN
org.chorke: WARN
################################################################################
# built on: Sat, Oct 10 2020, 10:10 +0000 by: [email protected]
################################################################################
application-docker.properties
################################################################################
# application properties
################################################################################
spring.jackson.date-format: yyyy-MM-dd'T'HH:mm:ss
spring.servlet.multipart.max-request-size: 10MB
spring.servlet.multipart.max-file-size: 1MB
spring.main.banner-mode: off
spring.profiles.active: dev
server.ssl.key-store: ${user.home}/.chorke/academia/etc/keystore/http/dev/spider.jks
server.ssl.key-store-password: storepasswd
server.ssl.key-password: storepasswd
server.ssl.keyAlias: academia
server.ssl.enabled: false
academia.http.spider.seleniumDriverBasePath: ${user.home}/.chorke/academia/var/selenium/driver
academia.http.spider.seleniumDriverTempPath: ${user.home}/.chorke/academia/tmp/selenium/driver
academia.http.spider.crawlUserAgentString: Finology Crawler (https://academia.com.my/)
academia.http.spider.crawlStorageFolder: ${user.home}/.chorke/academia/tmp/http/spider
academia.http.spider.maxDepthOfCrawling: 2
academia.http.spider.resumableCrawling: false
academia.http.spider.numberOfCrawlers: 7
academia.http.spider.politenessDelay: 200
academia.http.spider.maxPagesToFetch: -1
academia.http.spider.enabledRobots: false
academia.http.spider.enabledChrome: false
spring.jpa.properties.hibernate.dialect: ${CHORKE_JPA_DIALECT}
spring.jpa.properties.hibernate.format_sql: true
spring.jpa.hibernate.ddl-auto: none
spring.jpa.open-in-view: false
spring.jpa.show-sql: ${CHORKE_JPA_SHOWSQL}
spring.cache.ehcache.config: classpath:/META-INF/ehcache/ehcache.xml
spring.cache.cache-names: academia_cache
spring.cache.type: ehcache
spring.h2.console.settings.web-allow-others: ${CHORKE_H2_ALLOWALL}
spring.h2.console.settings.trace: false
spring.h2.console.path: /h2admin
spring.h2.console.enabled: ${CHORKE_H2_WEBADMIN}
graphql.servlet.mapping: /graphql
graphql.servlet.enabled: ${CHORKE_GQL_ENABLED}
graphiql.mapping: /graphiql
graphiql.endpoint: /graphql
graphiql.enabled: ${CHORKE_GQL_BROWSER}
spring.liquibase.enabled: true
spring.liquibase.contexts: ${CHORKE_LIQ_CONTEXT}
spring.liquibase.change-log: classpath:/META-INF/migrations/db.changelog-master.xml
################################################################################
# built on: Sat, Oct 10 2020, 10:10 +0000 by: [email protected]
################################################################################
log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Properties>
<Property name="academia.log.format">%d{MMM dd, yyyy HH:mm:ss a} %c [METHOD: %M , LINE: %L]%n[%-5p][%t] %m%n</Property>
<Property name="academia.log.file.gz">${academia.log.dir}/%d{yyyyMM}/SPIDER-%d{yyyyMMdd}-%i.log.gz</Property>
<Property name="academia.log.dir">${sys:user.home}/.chorke/academia/var/log/http</Property>
<Property name="academia.log.rolling">${env:CHORKE_LOG_ROLLING:-INFO}</Property>
<Property name="academia.log.console">${env:CHORKE_LOG_CONSOLE:-INFO}</Property>
<Property name="academia.log.file">${academia.log.dir}/SPIDER.log</Property>
</Properties>
<Appenders>
<RollingFile name="file" fileName="${academia.log.file}" filePattern="${academia.log.file.gz}" ignoreExceptions="false">
<PatternLayout pattern="${academia.log.format}"/>
<Policies>
<SizeBasedTriggeringPolicy size="10 MB"/>
<TimeBasedTriggeringPolicy interval="1"/>
<OnStartupTriggeringPolicy />
</Policies>
<DefaultRolloverStrategy max="20"/>
</RollingFile>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="${academia.log.format}"/>
</Console>
<Async name="async">
<AppenderRef ref="console" level="${academia.log.console}"/>
<AppenderRef ref="file" level="${academia.log.rolling}"/>
</Async>
</Appenders>
<Loggers>
<Logger name="org.chorke.academia.http.spider.mapper" level="WARN"/>
<Logger name="springfox.documentation" level="WARN"/>
<Logger name="edu.uci.ics.crawler4j" level="ERROR"/>
<Logger name="org.apache.activemq" level="WARN"/>
<Logger name="org.chorke.academia" level="INFO"/>
<Logger name="org.springframework" level="WARN"/>
<Logger name="org.apache.camel" level="WARN"/>
<Logger name="org.thymeleaf" level="WARN"/>
<Logger name="javax.servlet" level="WARN"/>
<Logger name="bitronix.tm" level="WARN"/>
<Logger name="org.jasypt" level="WARN"/>
<Logger name="org.quartz" level="WARN"/>
<Logger name="com.zaxxer" level="WARN"/>
<Root level="INFO">
<AppenderRef ref="async"/>
</Root>
</Loggers>
</Configuration>