diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..47fc74b --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,43 @@ +version: '3.3' +services: + db: + build: ./docker/mysql + image: mysql:5.7 + restart: always + environment: + MYSQL_DATABASE: sample_db + MYSQL_USER: user + MYSQL_PASSWORD: password + MYSQL_ROOT_PASSWORD: rootpassword + ports: + - "3306:3306" + volumes: + - ./docker/mysql/initdb.d:/docker-entrypoint-initdb.d + - ./docker/mysql/conf.d:/etc/mysql/conf.d + - ./log/mysql:/var/log/mysql + + app: + build: ./docker/spring-boot + image: taiga/boot:0.1.0 + depends_on: + - db + ports: + - "8080:8080" + volumes: + - .:/app + environment: + JAR_TARGET: cosmos_server-sb-0.0.1-SNAPSHOT.jar + + phpmyadmin: + image: phpmyadmin/phpmyadmin + environment: + - PMA_ARBITRARY=1 + - PMA_HOST=db + - PMA_USER=root + - PMA_PASSWORD=rootpassword + links: + - db + ports: + - 1111:80 + volumes: + - /sessions diff --git a/docker/mysql/Dockerfile b/docker/mysql/Dockerfile new file mode 100644 index 0000000..57b1a34 --- /dev/null +++ b/docker/mysql/Dockerfile @@ -0,0 +1,2 @@ +FROM mysql:5.7 +RUN touch /var/log/mysql/mysqld.log # 指定の場所にログを記録するファイルを作る \ No newline at end of file diff --git a/docker/mysql/conf.d/my.conf b/docker/mysql/conf.d/my.conf new file mode 100644 index 0000000..0e7a8d1 --- /dev/null +++ b/docker/mysql/conf.d/my.conf @@ -0,0 +1,8 @@ +[mysqld] +character-set-server = utf8mb4 # mysqlサーバー側が使用する文字コード +explicit-defaults-for-timestamp = 1 # テーブルにTimeStamp型のカラムをもつ場合、推奨 +general-log = 1 # 実行したクエリの全ての履歴が記録される(defaultではOFFになっているらしい) +general-log-file = /var/log/mysql/mysqld.log # ログの出力先 + +[client] +default-character-set = utf8mb4 # mysqlのクライアント側が使用する文字コード \ No newline at end of file diff --git a/docker/mysql/initdb.d/schma.sql b/docker/mysql/initdb.d/schma.sql new file mode 100644 index 0000000..d4d5224 --- /dev/null +++ b/docker/mysql/initdb.d/schma.sql @@ -0,0 +1,35 @@ +CREATE TABLE users( +uId varchar(36) PRIMARY KEY NOT NULL, +name varchar(36) NOT NULL, +uri varchar(100) NOT NULL, +iconUri varchar(100) NOT NULL, +login BIT NOT NULL +); + +CREATE TABLE token( +token varchar(36) PRIMARY KEY NOT NULL, +uId varchar(36) NOT NULL +); + +CREATE TABLE groups( +gId varchar(36) PRIMARY KEY NOT NULL, +name varchar(36) NOT NULL, +uri varchar(100) NOT NULL +); + +CREATE TABLE request( +rId varchar(36) PRIMARY KEY NOT NULL, +gId varchar(36) NOT NULL, +date DATE NOT NULL, +issuer varchar(36) NOT NULL, +request varchar(36) NOT NULL, +deadline DATE NOT NULL, +location varchar(36), +done BIT NOT NULL +); + +create TABLE belong( +gId varchar(36) PRIMARY KEY NOT NULL, +uId varchar(36) NOT NULL +); + diff --git a/docker/mysql/initdb.d/testdata.sql b/docker/mysql/initdb.d/testdata.sql new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docker/mysql/initdb.d/testdata.sql diff --git a/docker/spring-boot/Dockerfile b/docker/spring-boot/Dockerfile new file mode 100644 index 0000000..2a56af4 --- /dev/null +++ b/docker/spring-boot/Dockerfile @@ -0,0 +1,19 @@ +# use alpine as base image +FROM ubuntu:16.04 + +RUN apt-get update +RUN apt-get -y install openjdk-8-jdk +ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64 + +# recommended by spring boot +VOLUME /tmp + +# create directory for application +RUN mkdir /app +WORKDIR /app + +# jar target +ENV JAR_TARGET "cosmos_server-sb-0.0.1-SNAPSHOT.jar" + +# set entrypoint to execute spring boot application +ENTRYPOINT ["sh","-c","java -jar build/libs/${JAR_TARGET}"] \ No newline at end of file diff --git a/src/main/java/com/example/cosmos_serversb/JerseyConfig.java b/src/main/java/com/example/cosmos_serversb/JerseyConfig.java index 37ef660..24ee219 100644 --- a/src/main/java/com/example/cosmos_serversb/JerseyConfig.java +++ b/src/main/java/com/example/cosmos_serversb/JerseyConfig.java @@ -7,6 +7,11 @@ @Component public class JerseyConfig extends ResourceConfig { public JerseyConfig() { + //old version that does not play well with spring boot fat jar + /* packages("com.example.cosmos_serversb.resources"); + */ + register(com.example.cosmos_serversb.resources.GroupsRest.class); + register(com.example.cosmos_serversb.resources.UsersRest.class); } } \ No newline at end of file