Skip to content

Commit c4d6447

Browse files
committed
Update to version 4.57.7
1 parent d0f1122 commit c4d6447

File tree

19 files changed

+160
-118
lines changed

19 files changed

+160
-118
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: Build nad publish Docker images
2+
3+
on:
4+
push:
5+
branches: ["master"]
6+
7+
env:
8+
MOOSEFS_VERSION: 4.57.7
9+
10+
jobs:
11+
build-and-push:
12+
runs-on: ubuntu-latest
13+
strategy:
14+
matrix:
15+
service:
16+
- master
17+
- metalogger
18+
- chunkserver
19+
- client
20+
- gui
21+
steps:
22+
- name: Checkout
23+
uses: actions/checkout@v4
24+
25+
- name: Set up QEMU
26+
uses: docker/setup-qemu-action@v3
27+
28+
- name: Set up Docker Buildx
29+
uses: docker/setup-buildx-action@v3
30+
31+
- name: Login to Docker Hub
32+
uses: docker/login-action@v3
33+
with:
34+
username: ${{ secrets.DOCKERHUB_USERNAME }}
35+
password: ${{ secrets.DOCKERHUB_TOKEN }}
36+
37+
- name: Build and push
38+
uses: docker/build-push-action@v5
39+
with:
40+
context: ./service/${{ matrix.service }}
41+
platforms: linux/amd64,linux/arm64
42+
push: true
43+
tags: |
44+
moosefs/${{ matrix.service }}:${{ env.MOOSEFS_VERSION }}
45+
moosefs/${{ matrix.service }}:latest

README.md

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
# MooseFS Docker Cluster
22

3-
This is a basic configuration of a multiple-node MooseFS cluster based on the Debian Buster Docker image. It consists of a Master Server, a CGI Monitoring Interface Server, 4 Chunkservers, and one Client. After a successful installation, you will have a fully working MooseFS cluster to play with its amazing features.
3+
This is an example configuration of a multi-node MooseFS cluster based on the Debian 13 (Trixie) Docker image. The system includes a master server, a GUI monitoring server, four chunk servers and two clients. Once successfully deployed, you will have a fully functional MooseFS cluster that you can take full advantage of, discovering its amazing features.
44

55
# Updates
66

7-
- Update cluster to version 4.57.6
7+
- Use version 4.57.7 of MooseFS.
8+
- Added moosefs-gui container. MooseFS version 4.57.7 introduced new mfsgui server application. Mfscgi and mfscgiserv packages are no longer available.
9+
- New mfsgui application allows prometheus metrics to be collected. For example: [http://localhost:9425/metrics](http://localhost:9425/metrics)
810
- The use of the MooseFS repository in containers has been discontinued. Binary files are compiled from source. This approach will make it easier to run the cluster on different CPU architectures.
911
- All MooseFS processes are now correctly handling signals.
1012
- Metadata and data are now persistent and mounted as volumes.
@@ -19,7 +21,7 @@ This is a basic configuration of a multiple-node MooseFS cluster based on the De
1921
**File docker-compose.yml**
2022

2123
- Master Server: `172.20.0.2`
22-
- CGI Monitoring Interface: [http://localhost:9425](http://localhost:9425), on Linux also [http://172.20.0.3:9425](http://172.20.0.3:9425)
24+
- GUI Monitoring Interface: [http://localhost:9425](http://localhost:9425), on Linux also [http://172.20.0.3:9425](http://172.20.0.3:9425)
2325
- Metalogger: `172.20.0.4`
2426
- Chunkserver 1: `172.20.0.11`, labels: `M`
2527
- Chunkserver 2: `172.20.0.12`, labels: `M, B`
@@ -30,7 +32,7 @@ This is a basic configuration of a multiple-node MooseFS cluster based on the De
3032

3133
# Setup
3234

33-
> Docker Compose is required!
35+
> Docker compose plugin is required!
3436
3537
Clone MooseFS docker cluster repository:
3638

@@ -39,27 +41,22 @@ git clone https://github.com/moosefs/moosefs-docker-cluster
3941
cd moosefs-docker-cluster
4042
```
4143

42-
Build and run:
43-
44+
Run MooseFS cluster:
4445
```
45-
docker compose build
4646
docker compose up
4747
```
4848

4949
You can also run `docker compose` in detached mode. All running Docker nodes will run in the background, so Docker console output will be invisible.
50-
5150
```
5251
docker compose up -d
5352
```
5453

5554
You can check if instances are running:
56-
5755
```
5856
docker ps
5957
```
6058

6159
You should have 1 Master Server, 1 Metalogger, 4 Chunkservers and 2 Clients running. The expected output should be similar to the following:
62-
6360
```
6461
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6562
f104d5b2f737 moosefs-docker-cluster-mfsclient2 "mount.sh" 3 minutes ago Up 3 seconds mfsclient2
@@ -69,14 +66,13 @@ f104d5b2f737 moosefs-docker-cluster-mfsclient2 "mount.sh"
6966
bdceb9669fae moosefs-docker-cluster-mfschunkserver2 "chunkserver.sh" 3 minutes ago Up 3 seconds 9422/tcp mfschunkserver2
7067
15de9aef85ec moosefs-docker-cluster-mfschunkserver1 "chunkserver.sh" 3 minutes ago Up 3 seconds 9422/tcp mfschunkserver1
7168
11465da54cb9 moosefs-docker-cluster-mfsmetalogger "metalogger.sh" 3 minutes ago Up 3 seconds mfsmetalogger
72-
3f7c572225c4 moosefs-docker-cluster-mfscgi "cgiserver.sh" 3 minutes ago Up 3 seconds 0.0.0.0:9425->9425/tcp mfscgi
69+
3f7c572225c4 moosefs-docker-cluster-mfsgui "gui.sh" 3 minutes ago Up 3 seconds 0.0.0.0:9425->9425/tcp mfsgui
7370
afd43c5c460f moosefs-docker-cluster-mfsmaster "master.sh" 3 minutes ago Up 4 seconds 0.0.0.0:9419-9421->9419-9421/tcp mfsmaster
7471
```
7572

7673
# Attach / detach to / from container
7774

7875
For example, if you like to **attach** to the client node execute this command:
79-
8076
```
8177
docker exec -it mfsclient1 bash
8278
```
@@ -86,7 +82,6 @@ To **detach** from container, just press `Ctrl + D` keys combination.
8682
# MooseFS Client
8783

8884
MooseFS filesystem is mounted at `/mnt/moosefs`. If everything is ok you should see this ASCII art:
89-
9085
```
9186
cat /mnt/moosefs/.mooseart
9287
\_\ /_/

docker-compose.yml

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
services:
22
mfsmaster:
3-
build: ./moosefs-master
3+
image: moosefs/master
44
container_name: "mfsmaster"
55
networks:
66
moosefsnet:
@@ -10,18 +10,18 @@ services:
1010
- "9420:9420"
1111
- "9421:9421"
1212
volumes:
13-
- ./data/master/meta:/var/lib/mfs
13+
- ./data/master/meta:/var/lib/mfs
1414
hostname: mfsmaster
1515
environment:
16-
- MFS_ENV=TEST
16+
- MFS_ENV=TEST
1717
# In the TEST environment, if metadata.mfs file or other metadata files
1818
# like metdata.mfs.back and changelog.0.mfs are missing, the script will
1919
# create an EMPTY metadata file!
2020
# When MFS_ENV=PROD metdata.mfs file will not be created!
2121

22-
mfscgi:
23-
build: ./moosefs-cgi
24-
container_name: "mfscgi"
22+
mfsgui:
23+
image: moosefs/gui
24+
container_name: "mfsgui"
2525
networks:
2626
moosefsnet:
2727
ipv4_address: "172.20.0.3"
@@ -31,7 +31,7 @@ services:
3131
- mfsmaster
3232

3333
mfsmetalogger:
34-
build: ./moosefs-metalogger
34+
image: moosefs/metalogger
3535
container_name: "mfsmetalogger"
3636
networks:
3737
moosefsnet:
@@ -48,7 +48,7 @@ services:
4848
- mfsmaster
4949

5050
mfschunkserver1:
51-
build: ./moosefs-chunkserver
51+
image: moosefs/chunkserver
5252
container_name: "mfschunkserver1"
5353
environment:
5454
- LABELS=M
@@ -59,12 +59,13 @@ services:
5959
moosefsnet:
6060
ipv4_address: "172.20.0.11"
6161
volumes:
62-
- ./data/cs1/hdd0:/mnt/hdd0
63-
- ./data/cs1/meta:/var/lib/mfs
62+
- ./data/cs1/hdd0:/mnt/hdd0
63+
- ./data/cs1/meta:/var/lib/mfs
6464
depends_on:
6565
- mfsmaster
66+
6667
mfschunkserver2:
67-
build: ./moosefs-chunkserver
68+
image: moosefs/chunkserver
6869
container_name: "mfschunkserver2"
6970
environment:
7071
- LABELS=M,B
@@ -75,12 +76,13 @@ services:
7576
moosefsnet:
7677
ipv4_address: "172.20.0.12"
7778
volumes:
78-
- ./data/cs2/hdd0:/mnt/hdd0
79-
- ./data/cs2/meta:/var/lib/mfs
79+
- ./data/cs2/hdd0:/mnt/hdd0
80+
- ./data/cs2/meta:/var/lib/mfs
8081
depends_on:
8182
- mfsmaster
83+
8284
mfschunkserver3:
83-
build: ./moosefs-chunkserver
85+
image: moosefs/chunkserver
8486
container_name: "mfschunkserver3"
8587
environment:
8688
- LABELS=M,B
@@ -91,12 +93,13 @@ services:
9193
moosefsnet:
9294
ipv4_address: "172.20.0.13"
9395
volumes:
94-
- ./data/cs3/hdd0:/mnt/hdd0
95-
- ./data/cs3/meta:/var/lib/mfs
96+
- ./data/cs3/hdd0:/mnt/hdd0
97+
- ./data/cs3/meta:/var/lib/mfs
9698
depends_on:
9799
- mfsmaster
100+
98101
mfschunkserver4:
99-
build: ./moosefs-chunkserver
102+
image: moosefs/chunkserver
100103
container_name: "mfschunkserver4"
101104
environment:
102105
- LABELS=B
@@ -107,13 +110,13 @@ services:
107110
moosefsnet:
108111
ipv4_address: "172.20.0.14"
109112
volumes:
110-
- ./data/cs4/hdd0:/mnt/hdd0
111-
- ./data/cs4/meta:/var/lib/mfs
113+
- ./data/cs4/hdd0:/mnt/hdd0
114+
- ./data/cs4/meta:/var/lib/mfs
112115
depends_on:
113116
- mfsmaster
114117

115118
mfsclient1:
116-
build: ./moosefs-client
119+
image: moosefs/client
117120
container_name: "mfsclient1"
118121
cap_add:
119122
- SYS_ADMIN
@@ -134,8 +137,9 @@ services:
134137
- mfschunkserver2
135138
- mfschunkserver3
136139
- mfschunkserver4
140+
137141
mfsclient2:
138-
build: ./moosefs-client
142+
image: moosefs/client
139143
container_name: "mfsclient2"
140144
cap_add:
141145
- SYS_ADMIN
@@ -161,5 +165,5 @@ networks:
161165
moosefsnet:
162166
driver: bridge
163167
ipam:
164-
config:
165-
- subnet: 172.20.0.0/16
168+
config:
169+
- subnet: 172.20.0.0/16

images/gui1.png

-84.3 KB
Loading

images/gui2.png

-71.3 KB
Loading

images/gui3.png

-112 KB
Loading

images/gui4.png

-86.7 KB
Loading

moosefs-cgi/Dockerfile

Lines changed: 0 additions & 29 deletions
This file was deleted.

moosefs-cgi/cgiserver.sh

Lines changed: 0 additions & 17 deletions
This file was deleted.
Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
ARG MFS_TAG="v4.57.6"
1+
# Build MooseFS chunnkserver from source on Debian Trixie (13) container
22

3-
# Build MooseFS chunkserver binaries from source
4-
# MFSbuilder image is based on Debian 12
5-
FROM ghcr.io/moosefs/mfsbuilder:latest AS mfsbuilder
3+
ARG MFS_TAG="v4.57.7"
4+
5+
FROM moosefs/mfsbuilder:trixie AS mfsbuilder
66
WORKDIR /moosefs
77
ARG MFS_TAG
88
RUN git clone --depth 1 --branch ${MFS_TAG} https://github.com/moosefs/moosefs.git /moosefs
@@ -11,12 +11,11 @@ RUN set -eux; \
1111
./configure --prefix=/usr --mandir=/share/man --sysconfdir=/etc \
1212
--localstatedir=/var/lib --with-default-user=mfs --with-default-group=mfs \
1313
--disable-mfsbdev --disable-mfsmount --disable-mfsmaster \
14-
--disable-mfsmetalogger --disable-mfsnetdump --disable-mfscgi \
15-
--disable-mfscgiserv --disable-mfscli; \
14+
--disable-mfsmetalogger --disable-mfsnetdump --disable-mfsgui --disable-mfscli; \
1615
make DESTDIR=/tmp/mfs install
1716

1817
#Build moosefs-chunkserver container
19-
FROM debian:bookworm
18+
FROM debian:trixie
2019
COPY --from=mfsbuilder /tmp/mfs/etc /etc
2120
COPY --from=mfsbuilder /tmp/mfs/usr /usr
2221
COPY --from=mfsbuilder /tmp/mfs/var /var
@@ -27,9 +26,9 @@ EXPOSE 9422
2726
# Container preparation
2827
ADD chunkserver.sh /usr/sbin/chunkserver.sh
2928
RUN set -eux; \
30-
useradd -r -d /var/lib/mfs -s /usr/sbin/nologin mfs; \
31-
chown root:root /usr/sbin/chunkserver.sh; \
32-
chmod 700 /usr/sbin/chunkserver.sh; \
33-
mkdir -p /mnt/hdd0
29+
useradd -r -d /var/lib/mfs -s /usr/sbin/nologin mfs; \
30+
chown root:root /usr/sbin/chunkserver.sh; \
31+
chmod 700 /usr/sbin/chunkserver.sh; \
32+
mkdir -p /mnt/hdd0
3433

3534
CMD ["chunkserver.sh"]

0 commit comments

Comments
 (0)