From afc20907a622c6b055d8caefc78250bf92e46007 Mon Sep 17 00:00:00 2001 From: NexVeridian Date: Tue, 6 Aug 2024 23:24:42 -0700 Subject: [PATCH] Add Makeflie --- .devcontainer/devcontainer.json | 17 +++++++----- CONTRIBUTING.md | 2 +- Cargo.toml | 10 +++---- Makefile | 14 ++++++++++ README.md | 11 ++++++-- docker-compose-surrealdb.dev.yml | 46 +++++++++++++++++++++++++++++++ docker-compose-surrealdb.yml | 45 ++++++++++++++++++++++++++++++ docker-compose.dev.yml | 47 -------------------------------- docker-compose.yml | 46 ------------------------------- 9 files changed, 129 insertions(+), 109 deletions(-) create mode 100644 Makefile create mode 100644 docker-compose-surrealdb.dev.yml create mode 100644 docker-compose-surrealdb.yml delete mode 100644 docker-compose.dev.yml delete mode 100644 docker-compose.yml diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 13ca2b9..5011057 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -32,13 +32,16 @@ // Features to add to the dev container. More info: https://containers.dev/features. "features": { "ghcr.io/devcontainers/features/git:1": {}, - "ghcr.io/devcontainers/features/docker-in-docker": {} - // "ghcr.io/devcontainers/features/nix:1": { - // "packages": [ - // "btop", - // "lazygit" - // ] - // } + "ghcr.io/devcontainers/features/docker-in-docker": {}, + "ghcr.io/devcontainers/features/nix:1": { + "packages": [ + "btop", + "lazygit", + "cargo-nextest", + "nixpkgs-fmt" + ], + "extraNixConfig": "experimental-features = nix-command flakes" + } }, // Use 'forwardPorts' to make a list of ports inside the container available locally. // "forwardPorts": [], diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c767303..b0e793d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -18,7 +18,7 @@ Run tests with `cargo t` ## Docker Compose `git clone` -`docker compose -f docker-compose.dev.yml build && docker compose -f docker-compose.dev.yml up --pull always -d` +`make up-surrealdb.dev` Remove the cargo cache for buildkit with `docker builder prune --filter type=exec.cachemount` diff --git a/Cargo.toml b/Cargo.toml index a4cf6a1..99964f7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,16 +8,16 @@ license = "MIT OR Apache-2.0" anyhow = "1.0" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" -surrealdb = "1.1" -tokio = { version = "1.35", features = ["time"] } +surrealdb = "1.5.4" +tokio = { version = "1.39", features = ["time"] } futures = "0.3" -wikidata = "1.0" +wikidata = "1.1" bzip2 = { version = "0.4", features = ["tokio"] } -lazy_static = "1.4" +lazy_static = "1.5" indicatif = "0.17" [dev-dependencies] -surrealdb = { version = "1.1", features = ["kv-mem"] } +surrealdb = { version = "1.5", features = ["kv-mem"] } criterion = { version = "0.5", features = ["async_tokio"] } pprof = { version = "0.13", features = ["criterion", "protobuf-codec"] } diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..6d4c233 --- /dev/null +++ b/Makefile @@ -0,0 +1,14 @@ +COMPOSE_FILES := surrealdb surrealdb.dev + +.PHONY: $(addprefix up-,$(COMPOSE_FILES)) $(addprefix down-,$(COMPOSE_FILES)) + +$(addprefix up-,$(COMPOSE_FILES)): + make down-$(subst up-,,$@) + docker compose -f docker-compose-$(subst up-,,$@).yml up --build --pull always -d + +$(addprefix down-,$(COMPOSE_FILES)): + docker compose -f docker-compose-$(subst down-,,$@).yml down --volumes --remove-orphans + docker network prune -f + +view: + docker attach wikidata-to-surrealdb diff --git a/README.md b/README.md index 87b5ef1..83549b2 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ https://www.wikidata.org/wiki/Special:EntityData/P527.json ``` # Install -Copy [docker-compose.yml](./docker-compose.yml) +Copy [docker-compose-surrealdb.yml](./docker-compose-surrealdb.yml) Create data folder next to docker-compose.yml and .env, place data inside, and set the data type in .env ``` @@ -28,14 +28,19 @@ Create data folder next to docker-compose.yml and .env, place data inside, and s │ ├── Entity.json │ ├── latest-all.json.bz2 │ └── surrealdb +├── Makefile ├── docker-compose.yml └── .env ``` -`docker compose up --pull always -d` +### Then run: +`make up-surrealdb` + +### Exit with: +`make down-surrealdb` ## View Progress -`docker attach wikidata-to-surrealdb` +`make view` ## Example .env ``` diff --git a/docker-compose-surrealdb.dev.yml b/docker-compose-surrealdb.dev.yml new file mode 100644 index 0000000..0e7ae7b --- /dev/null +++ b/docker-compose-surrealdb.dev.yml @@ -0,0 +1,46 @@ +services: + surrealdb: + container_name: surrealdb + image: surrealdb/surrealdb:v2.0.0-alpha.9 + env_file: + - .env + entrypoint: + - /surreal + - start + - --user + - $DB_USER + - --pass + - $DB_PASSWORD + - file:/data/surrealdb + restart: always + deploy: + resources: + reservations: + cpus: 1.0 + ports: + - 8000:8000 + volumes: + - ./data:/data + networks: + - surrealdb + + wikidata-to-surrealdb: + container_name: wikidata-to-surrealdb + build: + context: . + env_file: + - .env + restart: no + tty: true + depends_on: + - surrealdb + volumes: + - ./data:/data + networks: + - surrealdb + +volumes: + data: + +networks: + surrealdb: diff --git a/docker-compose-surrealdb.yml b/docker-compose-surrealdb.yml new file mode 100644 index 0000000..93f6e7e --- /dev/null +++ b/docker-compose-surrealdb.yml @@ -0,0 +1,45 @@ +services: + surrealdb: + container_name: surrealdb + image: surrealdb/surrealdb:v2.0.0-alpha.9 + env_file: + - .env + entrypoint: + - /surreal + - start + - --user + - $DB_USER + - --pass + - $DB_PASSWORD + - file:/data/surrealdb + restart: always + deploy: + resources: + reservations: + cpus: 1.0 + ports: + - 8000:8000 + volumes: + - ./data:/data + networks: + - surrealdb + + wikidata-to-surrealdb: + container_name: wikidata-to-surrealdb + image: ghcr.io/nexveridian/wikidata-to-surrealdb:latest + env_file: + - .env + restart: no + tty: true + depends_on: + - surrealdb + volumes: + - ./data:/data + networks: + - surrealdb + +volumes: + data: + +networks: + surrealdb: diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml deleted file mode 100644 index 475a2fd..0000000 --- a/docker-compose.dev.yml +++ /dev/null @@ -1,47 +0,0 @@ -version: "3" -services: - surrealdb: - container_name: surrealdb - image: surrealdb/surrealdb:latest - env_file: - - .env - entrypoint: - - /surreal - - start - - --user - - $DB_USER - - --pass - - $DB_PASSWORD - - file:/data/surrealdb - restart: always - deploy: - resources: - reservations: - cpus: '1' - ports: - - 8000:8000 - volumes: - - ./data:/data - networks: - - surrealdb - - wikidata-to-surrealdb: - container_name: wikidata-to-surrealdb - build: - context: . - env_file: - - .env - restart: no - tty: true - depends_on: - - surrealdb - volumes: - - ./data:/data - networks: - - surrealdb - -volumes: - data: - -networks: - surrealdb: diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 911786e..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,46 +0,0 @@ -version: "3" -services: - surrealdb: - container_name: surrealdb - image: surrealdb/surrealdb:latest - env_file: - - .env - entrypoint: - - /surreal - - start - - --user - - $DB_USER - - --pass - - $DB_PASSWORD - - file:/data/surrealdb - restart: always - deploy: - resources: - reservations: - cpus: '1' - ports: - - 8000:8000 - volumes: - - ./data:/data - networks: - - surrealdb - - wikidata-to-surrealdb: - container_name: wikidata-to-surrealdb - image: ghcr.io/nexveridian/wikidata-to-surrealdb:latest - env_file: - - .env - restart: no - tty: true - depends_on: - - surrealdb - volumes: - - ./data:/data - networks: - - surrealdb - -volumes: - data: - -networks: - surrealdb: