docker-composeのメモ
- Dockerfileの編集等が反映されない場合は、ビルドする。
$ docker-compose build [service name]
- それでも反映されない場合は、キャッシュ無効にしてビルドする。
$ docker-compose build --no-cache
- ビルドしてから一回donwしてupしたら反映したやつが動いてる状態になる。(めんどくさい)
$ docker-compose down && docker-compose up -d
apacheのメモ
- httpd:2.4という本家のイメージを使った。
- WORKDIRが
/usr/local/apache2
で、この配下にconf
とかhtdocs
とか全部ある。extra
にconfファイルを入れる。
Websocketのメモ
- apacheの設定ファイルは、下記のような感じにした。
- LoadModuleが不足してると、Websocket Client側で、原因不明の500エラーみたいのでていて、Adonis(Websocket Server)側で、下記エラーが出ていた。
- エラーメッセージを保存していなかったので忘れてしまった。(最後にLoadModuleって書いてあった)
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
ProxyPreserveHost On
ProxyPass /realtime ws://api:3000/realtime/socket.io
ProxyPassReverse /realtime ws://api:3000/realtime/socket.io
ProxyPass / http://api:3333/ connectiontimeout=5
ProxyPassReverse / http://api:3333/
PM2のメモ
FROM node:12.18.3
RUN apt-get update && apt-get -y install vim
COPY ./.bashrc /root/.bashrc
RUN npm i -g pm2@3
RUN npm i -g @adonisjs/cli
WORKDIR /usr/src/app
COPY ./test /usr/src/test
RUN cd /usr/src/test && npm i
COPY ./pm2.config.js /usr/src
CMD [ "pm2-runtime", "start", "../pm2.config.js"]
- PM2に関しては、上記の一番下の行のCMDの部分で、pm2.config.jsの内容に基づいてstartしている。pm2-runtimeにしないといけなかった。
- Adonis.jsのMigrationを使うときに、一回pm2 stopするのですが、そうするとコンテナが終わってしまうので、testプログラムも同時にpm2 startしておくことで、終わらないようにしてみた。
- pm2.config.jsは下記のような感じにした。
module.exports = [{
script: '/usr/src/app/server.js',
name: 'server',
}, {
script: '/usr/src/test/client.js',
name: 'test'
}]
Adonis.jsのメモ
.env
ファイルのHOST
は、127.0.0.1
ではなく、0.0.0.0
にしたら動いた。(外部からアクセスできるようになった)
docker-compose.yml
version: "3.7"
services:
db:
build: ./db
ports:
- 3307:3306
volumes:
- ./data/db:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: hoge
redis:
image: redis:latest
ports:
- 6379:6379
volumes:
- ./data/redis:/data
front:
build: ./front/php-apache
ports:
- 8007:80
volumes:
- ./src/front/html:/var/www
api:
build: ./api/node
volumes:
- ./src/api/adonis:/usr/src/app
depends_on:
- db
- redis
ports:
- 3334:3333
- 3001:3000
api-apache:
build: ./api/apache
ports:
- 8008:80
depends_on:
- api
mailhog:
image: mailhog/mailhog
ports:
- 8027:8025
- 1027:1025
あとやること
- CRONの動作テストを簡単にする
- LOG出力の整理