今日は前回の続きをする前に、第7回で作った Dockerfile
を編集して、crateのキャッシュをできるようにする。
how-to-make-stock-trading-system.dogwood008.com
# Dockerfile # syntax=docker/dockerfile:1.2 FROM rust:1.55-bullseye RUN mkdir /app WORKDIR /app COPY Cargo.toml /app/Cargo.toml COPY Cargo.lock /app/Cargo.lock COPY src /app/src # https://stackoverflow.com/a/60590697 RUN --mount=type=cache,target=/usr/local/cargo/registry \ --mount=type=cache,target=/home/root/app/target \ cargo install --path . # 後でマルチステージビルドとして使い、生成物だけ残しこのステージは破棄する RUN cargo install diesel_cli --no-default-features --features postgres
前回の続きを進めていく。
how-to-make-stock-trading-system.dogwood008.com
まずは、下記に沿ってenvの設定から。
# docker-compose.yml services: app: build: . command: cargo run volumes: - ./src:/app/src ports: - '8080:8080' environment: - DATABASE_URL='postgres://postgres:postgres@db/'
続いてセットアップする。
root@82435f243afc:/app# diesel setup Creating migrations directory at: /app/migrations thread 'main' panicked at '`'postgres://postgres:postgres@db/'` is not a valid database URL. It should start with `postgres://`', /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/diesel_cli-1.4.1/src/database.rs:59:17 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
うーん。。。DB名まで指定しないとダメか。
# docker-compose.yml services: app: environment: - DATABASE_URL='postgres://postgres:postgres@db/stocks'
root@82435f243afc:/app# diesel setup Creating database: stocks
いけたわ。今日はここまで。