Skip to content

Commit

Permalink
chore: Add Dockerfile and GitHub Actions workflow for building and re…
Browse files Browse the repository at this point in the history
…leasing btop image
  • Loading branch information
dragonfire1119 committed May 16, 2024
1 parent 620c03a commit f5fb188
Show file tree
Hide file tree
Showing 5 changed files with 112 additions and 0 deletions.
45 changes: 45 additions & 0 deletions .github/workflows/build_and_release_for_btop.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: "Build and release for btop"

on:
push:
branches:
- main

jobs:
create:
name: "Creates the newest release by version"
runs-on: "ubuntu-latest"

steps:
- name: Checkout project
uses: actions/[email protected]

# New step to read the VERSION file and set the version as an output
- name: Get the version
id: get_version
run: echo "btop_version=$(cat btop/VERSION)" >> $GITHUB_ENV

- name: Set up QEMU
uses: docker/setup-qemu-action@master
with:
platforms: all

- name: Set up Docker Build
uses: docker/setup-buildx-action@v3

- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v3
with:
push: true
platforms: linux/amd64,linux/arm64
context: ./btop
file: ./btop/Dockerfile
tags: |
bigbeartechworld/big-bear-btop:latest
bigbeartechworld/big-bear-btop:${{ env.btop_version }}
35 changes: 35 additions & 0 deletions btop/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
FROM debian:latest

# Install required packages for building ttyd and running btop
RUN apt-get update && apt-get install -y \
btop \
procps \
curl \
iproute2 \
git \
cmake \
g++ \
pkg-config \
libjson-c-dev \
libwebsockets-dev \
&& apt-get clean

# Clone, build, and install ttyd
RUN git clone https://github.com/tsl0922/ttyd.git /tmp/ttyd && \
cd /tmp/ttyd && \
mkdir build && \
cd build && \
cmake .. && \
make && \
make install && \
cd / && \
rm -rf /tmp/ttyd

# Set the terminal to support UTF-8
ENV LANG C.UTF-8

# Expose the port ttyd will run on
EXPOSE 7681

# Start ttyd and run btop
CMD ["ttyd", "-p", "7681", "btop"]
7 changes: 7 additions & 0 deletions btop/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Instructions to build and run the Docker image

# Build docker image with:

```
docker build . -t big-bear-btop
```
1 change: 1 addition & 0 deletions btop/VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0.0.1
24 changes: 24 additions & 0 deletions btop/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
version: "3.8" # Specify the version of the Docker Compose file format

services:
# Define the service named 'big-bear-btop'
big-bear-btop:
# Build the Docker image using the Dockerfile in the current directory
build: .
# Name the container 'big-bear-btop' for easier identification
container_name: big-bear-btop
# Run the container in privileged mode to allow access to system metrics
privileged: true
# Mount necessary volumes for accessing system information
volumes:
# Mount the host's /proc directory to the container's /proc directory
- /proc:/proc
# Mount the host's /sys directory to the container's /sys directory
- /sys:/sys
# Mount the host's /dev directory to the container's /dev directory
- /dev:/dev
# Mount the host's /etc/localtime file to the container's /etc/localtime file (read-only)
- /etc/localtime:/etc/localtime:ro
# Map port 7681 on the host to port 7681 on the container
ports:
- "7681:7681"

0 comments on commit f5fb188

Please sign in to comment.