Compare commits

..

2 Commits

Author SHA1 Message Date
Xyon cd68fe24f8 Merge pull request 'Add dockerfile and docker compose stuff and make that all work' (#1) from feature/ci-build-on-nonmainline into main
Hal Deployment / build (push) Successful in 6m9s Details
Hal Deployment / deploy (push) Successful in 9s Details
Reviewed-on: #1
2025-05-15 22:39:00 +00:00
Lucy Bladen 12d88af66c Add dockerfile and docker compose stuff and make that all work 2025-05-15 23:38:18 +01:00
5 changed files with 40 additions and 3 deletions

1
Cargo.lock generated
View File

@ -1407,6 +1407,7 @@ checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
[[package]] [[package]]
name = "manifold" name = "manifold"
version = "8.0.0" version = "8.0.0"
source = "git+https://code.orbiter-radio.uk/discord/manifold.git#a9fb91c7718a5b21310f2c9a196ee66081d72054"
dependencies = [ dependencies = [
"built", "built",
"chrono", "chrono",

15
Dockerfile Normal file
View File

@ -0,0 +1,15 @@
FROM rust:latest AS builder
WORKDIR /usr/src/hal
COPY . .
RUN cargo install --path .
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y libpq5 libssl3 && rm -rf /var/lib/apt/lists/*
RUN mkdir -pv /srv/hal
COPY --from=builder /usr/local/cargo/bin/hal /srv/hal
RUN chmod a+x /srv/hal/hal
COPY --from=builder /usr/src/hal/config /srv/hal/config
COPY --from=builder /usr/src/hal/txt /srv/hal/txt
RUN find /srv/hal/
WORKDIR /srv/hal
CMD ["./hal", "-e", "development"]

17
compose.yaml Normal file
View File

@ -0,0 +1,17 @@
services:
hal:
depends_on:
psql:
condition: service_started
restart: true
build: .
environment:
- DISCORD_TOKEN=${DISCORD_TOKEN}
- RUST_LOG=warn
psql:
image: postgres
restart: always
# set shared memory limit when using docker compose
shm_size: 128mb
environment:
POSTGRES_PASSWORD: "7ZhUVzr7sxcPEEDMdxfEryW4NTZX5C2ufzZd3r2s25xULgH7FWXJVts"

View File

@ -2,10 +2,10 @@
"prefix": "!", "prefix": "!",
"nickname": "Hal 9000", "nickname": "Hal 9000",
"database": { "database": {
"host": "127.0.0.1", "host": "psql",
"user": "badgey_development", "user": "postgres",
"pass": "7ZhUVzr7sxcPEEDMdxfEryW4NTZX5C2ufzZd3r2s25xULgH7FWXJVts", "pass": "7ZhUVzr7sxcPEEDMdxfEryW4NTZX5C2ufzZd3r2s25xULgH7FWXJVts",
"database_name": "hal_development", "database_name": "postgres",
"port": 5432 "port": 5432
}, },
"channels": { "channels": {

View File

@ -16,6 +16,8 @@ pub async fn run(arguments: ArgMatches) {
let git_info: String = built_info::GIT_VERSION.unwrap_or("unknown").to_string(); let git_info: String = built_info::GIT_VERSION.unwrap_or("unknown").to_string();
let version_string = format!("Hal 9000 Bot version {ver} built at {time} from revision {rev}", ver=built_info::PKG_VERSION, time=built_info::BUILT_TIME_UTC, rev=git_info).to_string(); let version_string = format!("Hal 9000 Bot version {ver} built at {time} from revision {rev}", ver=built_info::PKG_VERSION, time=built_info::BUILT_TIME_UTC, rev=git_info).to_string();
warn!("HAL Client initialising...");
let client = match manifold::prepare_client::<HalHandler>(arguments, GatewayIntents::all(), commands::collect_commands(), version_string, MIGRATIONS).await { let client = match manifold::prepare_client::<HalHandler>(arguments, GatewayIntents::all(), commands::collect_commands(), version_string, MIGRATIONS).await {
Ok(c) => c, Ok(c) => c,
Err(e) => { Err(e) => {
@ -24,5 +26,7 @@ pub async fn run(arguments: ArgMatches) {
} }
}; };
warn!("HAL Client connecting...");
let _ = client.build().await.unwrap().start().await; let _ = client.build().await.unwrap().start().await;
} }