teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

Docker周りの設定の内容を追加

2021/02/02 06:41

投稿

Anmos
Anmos

スコア1

title CHANGED
File without changes
body CHANGED
@@ -34,4 +34,148 @@
34
34
  ### 補足情報(FW/ツールのバージョンなど)
35
35
  (詳しくないので、必要な情報が洩れていたら追記します。)
36
36
  MacOS
37
- DockerforMac
37
+ DockerforMac
38
+
39
+ http://joytas.net/programming/jspservlet08
40
+ こちらのサイトのようなプログラムをDockerで作りたい
41
+ Dockerの設定はこのサイトを参考にしています。(https://ucwork.hatenablog.com/entry/2018/08/19/172548)
42
+ プログラムをビルドし、できたwarをデプロイするところをDockerで実現する箇所を自分で追加しようと思い、躓いています。
43
+
44
+ * 現状のディレクトリ構成
45
+ ```
46
+ .
47
+ ├── docker
48
+ │ ├── mysql01
49
+ │ │ ├── Dockerfile
50
+ │ │ └── config
51
+ │ │ └── charset.cnf
52
+ │ ├── nginx01
53
+ │ │ ├── Dockerfile
54
+ │ │ └── conf
55
+ │ │ └── nginx.conf
56
+ │ └── tomcat01
57
+ │ ├── Dockerfile
58
+ │ ├── conf
59
+ │ │ └── supervisord.conf
60
+ │ └── deployment
61
+ ├── docker-compose.yml
62
+
63
+ ```
64
+ * docker-compose.yml
65
+ ```
66
+ version: '3'
67
+ services:
68
+ web01:
69
+ container_name: nginx01
70
+ build: ./docker/nginx01
71
+ image: nginx01:1.0.0
72
+ ports:
73
+ - "80:80"
74
+ environment:
75
+ TZ: "Asia/Tokyo"
76
+ volumes:
77
+ - ./docker/nginx01/conf:/etc/nginx/conf.d
78
+ extra_hosts:
79
+ - "tournament.local:127.0.0.1"
80
+ servlet01:
81
+ container_name: tomcat01
82
+ build: ./docker/tomcat01
83
+ image: tomcat01:1.0.0
84
+ environment:
85
+ TZ: "Asia/Tokyo"
86
+ expose:
87
+ - "8080"
88
+ ports:
89
+ - "8000:8000"
90
+ volumes:
91
+ - ./docker/tomcat01/deployment:/usr/local/tomcat/webapps/:rw
92
+ db01:
93
+ container_name: mysql01
94
+ build: ./docker/mysql01
95
+ image: mysql01:1.0.0
96
+ command: >-
97
+ /entrypoint.sh mysqld
98
+ --slow_query_log=3
99
+ --long_query_time=3
100
+ --slow_query_log_file=/var/log/mysql/slow.log
101
+ environment:
102
+ MYSQL_ROOT_PASSWORD: root
103
+ MYSQL_DATABASE: tournament
104
+ TZ: "Asia/Tokyo"
105
+ ports:
106
+ - "3306:3306"
107
+ volumes:
108
+ - data:/var/lib/mysql
109
+ volumes:
110
+ data: {}
111
+ ```
112
+ * Nginx設定ファイル
113
+ ```
114
+ server {
115
+ listen 80;
116
+ server_name tournament.local;
117
+
118
+ access_log /var/log/nginx/tomcat_access.log;
119
+ error_log /var/log/nginx/tomcat_error.log;
120
+
121
+ location / {
122
+ proxy_set_header X-Forwarded-Host $host:$server_port;
123
+ proxy_set_header X-Forwarded-Server $host;
124
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
125
+ proxy_pass http://servlet01:8080/tournament/;
126
+ index index.html index.htm;
127
+ }
128
+ }
129
+ ```
130
+ * Tomcat DockerFile 、設定ファイル
131
+ ```
132
+ FROM tomcat:8.0-jre8-alpine
133
+
134
+ # set server defautlt setting
135
+ RUN apk --update add tzdata perl curl openssh openrc supervisor && \
136
+ rm -rf /var/cache/apk/*
137
+ ENV TZ Asia/Tokyo
138
+
139
+ # access to velocity frmo jboss
140
+ ENV JAVA_OPTS="-Dspring.profiles.active=local"
141
+ ENV JPDA_ADDRESS=8000
142
+ ENV JPDA_TRANSPORT=dt_socket
143
+
144
+ # start tomcat & sshd
145
+ COPY ./conf/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
146
+ CMD /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf
147
+ ```
148
+ ```
149
+ [supervisord]
150
+ nodaemon=true
151
+
152
+ [program:sshd]
153
+ command=/usr/sbin/sshd -D
154
+
155
+ [program:tomcat]
156
+ command=/usr/local/tomcat/bin/catalina.sh jpda run
157
+ ```
158
+ * MySQL DockerFile 、設定ファイル
159
+ ```
160
+ FROM mysql:5.6
161
+
162
+ # 設定ファイルを配置
163
+ # (MySQLは設定ファイルの権限が777だと読み込まない)
164
+ COPY config /etc/mysql/conf.d/
165
+ RUN chmod 644 /etc/mysql/conf.d/*
166
+
167
+ RUN apt-get update && \
168
+ apt-get install -y locales && \
169
+ rm -rf /var/lib/apt/lists/* && \
170
+ echo "ja_JP.UTF-8 UTF-8" > /etc/locale.gen && \
171
+ locale-gen ja_JP.UTF-8
172
+ ENV LC_ALL ja_JP.UTF-8
173
+ ```
174
+ ```
175
+ [mysqld]
176
+ explicit_defaults_for_timestamp = 1
177
+ character-set-server=utf8
178
+ sql_mode=NO_ENGINE_SUBSTITUTION
179
+ [mysql]
180
+ default-character-set=utf8
181
+ ```