Skip to content

ictsc/ictsc-rikka

Repository files navigation

ictsc-rikka

score-server backend in ictsc 2021 summer.

development

docker-composemakeを利用して開発することができます。

設定ファイル

設定ファイルはcmd/rikka以下に作成します。 config.yamlconfig.docker.yaml.gitignoreで指定されているため、config.yaml.exampleを元に作成して下さい。

# 設定ファイルの例
cmd/rikka/config.yaml.example

# make run(ローカル実行時)に使用します
cmd/rikka/config.yaml

# make run-docker(docker実行時)に使用します
cmd/rikka/config.docker.yaml

Docker での開発

初回

.env をコピーし .env.dev を作成します

cp .env .env.dev

docker を起動しデータベースを初期化します

make up
make mariadb-reset-db

テスト環境の作成

scripts/test_seed.sql が実施されデータが投入された状態で起動します

cp scripts/docker-compose.override.yml .
make up

compose.yml

service image 用途 永続化
rikka golang:1.16 API なし
mariadb mariadb:10.5.10 データベース mariadb:/var/lib/mysql
redis redis:6.2.4 session 用 なし
go golang:1.16 開発時実行用 go-pkg:/go/pkg

Makefile

以下のコマンドが使えます。

# ローカルでgo run実行
make run

# docker composeでgo run実行(非推奨)
make run-docker

# docker compose ps
make ps

# api, mariadb, redisを起動
make up

# api, mariadb, redis, goのコンテナとネットワークを削除
make down

# go build
make build

# go test
make test

# go generate
make generate

# mariadbにmysqlコマンドでログイン
make mariadb

# データベースのリセット(drop -> create)
make mariadb-reset-db

# redis-cliを起動
make redis-cli

# 自己署名証明書の作成
make self-signed-cert-and-key

deploy

Docker でのデプロイ

.env をコピーし .env.prod を作成します

cp .env .env.prod

docker を起動しデータベースを初期化します

docker compose -f compose.yml -f compose.prod.yml --env-file .env.prod up -d