docker-compose springboot+mysqlアクセスデータベースの構成
2308 ワード
一、sprigbootプロジェクトの作成
Springbootプロジェクト構成
1.プロジェクトの正常な構成は1つのcontrollerを書いてdbデータを取得する
2.アプリケーションの構成yml
3.springbootのDockerfile 1
4.mysqlのDockerfile
5.docker-compose.yml
テスト
1.以上のファイルと打つjarは1つのディレクトリを置きます
2.ディレクトリパスコマンドdocker-compose upで起動
3.コンテナipのデータベースに接続し、sysデータベースの下にpersonテーブルを新規作成してデータを書き込む.
3.ブラウザ`https:コンテナip:8080/hi`アクセスクエリーデータ
Springbootプロジェクト構成
1.プロジェクトの正常な構成は1つのcontrollerを書いてdbデータを取得する
@RestController
public class Hello {
@Autowired
private JdbcTemplate jdbcTemplate;
@RequestMapping("/hi")
public String hello(){
String sql = "SELECT * FROM person";
Map stringObjectMap = jdbcTemplate.queryForMap(sql);
return "docker hello world!"+ JSON.toJSONString(stringObjectMap);
}
}
2.アプリケーションの構成yml
# mysqldbserver docker-compose.yml container_name
sprig:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://mysqldbserver:3306/sys?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: 123456
3.springbootのDockerfile 1
FROM java:8
VOLUME /vol/development
RUN mkdir -p /vol/development
WORKDIR /vol/development
COPY jar .jar /vol/development/app.jar
CMD ["java", "-Xmx200m", "-Djava.security.egd=file:/dev/./urandom","-jar","/vol/development/app.jar"]
4.mysqlのDockerfile
FROM mysql:5.7.17
5.docker-compose.yml
version : '3'
services:
mysqldbserver:
container_name: mysqldbserver
image: mysql:5.7.17
build:
context: .
dockerfile: Dockerfile
ports:
- "3306:3306"
command: [
'mysqld',
'--innodb-buffer-pool-size=20M',
'--character-set-server=utf8',
'--collation-server=utf8_general_ci',
'--default-time-zone=+8:00',
'--lower-case-table-names=1'
]
environment:
MYSQL_DATABASE: sys
MYSQL_ROOT_PASSWORD: 123456
springappserver:
container_name: springappserver
build:
context: .
dockerfile: Dockerfile1
ports:
- "8080:8080"
volumes:
- /vol/development
depends_on:
- mysqldbserver
links:
- mysqldbserver
テスト
1.以上のファイルと打つjarは1つのディレクトリを置きます
2.ディレクトリパスコマンドdocker-compose upで起動
3.コンテナipのデータベースに接続し、sysデータベースの下にpersonテーブルを新規作成してデータを書き込む.
3.ブラウザ`https:コンテナip:8080/hi`アクセスクエリーデータ