Skip to content

Commit

Permalink
chore(docker): publish docker image
Browse files Browse the repository at this point in the history
  • Loading branch information
EstebanBorai committed Feb 4, 2024
1 parent 3e446f0 commit fb06e25
Show file tree
Hide file tree
Showing 5 changed files with 83 additions and 2 deletions.
58 changes: 58 additions & 0 deletions .github/workflows/publish-docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Publish Docker Image

on:
push:

concurrency:
group: "${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}"
cancel-in-progress: true

env:
IMAGE_NAME: commune
GHCR_REGISTRY: ghcr.io/commune-os

jobs:
publish_image:
name: Publish image
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
id-token: write
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Rust Toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
targets: x86_64-unknown-linux-musl

- name: Setup Rust Cache
uses: Swatinem/rust-cache@v2

- name: Setup Rust Target
run: rustup target add x86_64-unknown-linux-musl

- name: Install Build Dependencies
run: |
sudo apt-get update
sudo apt-get install \
build-essential \
librust-openssl-dev \
pkg-config \
openssl \
libssl-dev
- name: Setup Zig
uses: goto-bus-stop/[email protected]

- name: Install ZigBuild
run: cargo install cargo-zigbuild

- name: Install Just
uses: extractions/setup-just@v1

- name: Build Image
run: just docker_build_image
3 changes: 2 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ anyhow = "1.0.75"
axum = { version = "0.7.4", features = ["tokio"] }
dotenv = "0.15.0"
http = "0.2.11"
reqwest = "0.11.22"
reqwest = { version = "0.11.22", default-features = false, features = ["blocking", "json", "rustls", "stream", "multipart"] }
openssl = { version = "0.10.63", features = ["vendored"] }
serde = "1.0.192"
serde_json = "1.0.108"
tokio = "1.34.0"
Expand Down
7 changes: 7 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM arm64v8/alpine:3

COPY server /opt/commune

WORKDIR app

ENTRYPOINT ["/opt/commune"]
14 changes: 14 additions & 0 deletions Justfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
set positional-arguments

commit_sha := `git rev-parse --verify HEAD`
target_release := "x86_64-unknown-linux-musl"

# Lists all available commands
default:
just --list
Expand Down Expand Up @@ -60,3 +63,14 @@ clear: stop
# Runs all the tests from the `test` package. Optionally runs a single one if name pattern is provided
e2e *args='':
cargo test --package test -- --nocapture --test-threads=1 $1

# Builds the Server binary used in the Docker Image
docker_build_server:
cargo zigbuild --target {{target_release}} --release -p server

# Builds the Docker image for the backend
docker_build_image: docker_build_server
mkdir tmp/
cp ./target/{{target_release}}/release/server ./tmp/server
chmod +x ./tmp/server
docker build -t "commune:{{commit_sha}}-{{target_release}}" --build-arg .
3 changes: 2 additions & 1 deletion crates/test/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ scraper = "0.18.1"
anyhow = { workspace = true }
axum = { workspace = true, features = ["tokio"] }
dotenv = { workspace = true }
reqwest = { workspace = true, features = ["json", "stream", "multipart"] }
reqwest = { workspace = true }
openssl = { workspace = true, features = ["vendored"] }
serde = { workspace = true }
tokio = { workspace = true, features = ["rt", "rt-multi-thread", "macros"] }
url = { workspace = true }
Expand Down

0 comments on commit fb06e25

Please sign in to comment.