aboutsummaryrefslogtreecommitdiff
path: root/docker/Makefile
blob: 77735775809adf4e8c45b1ee5df788d5233bdc73 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
all: gen

.PHONY : gen

gen: dev

cgo ?= 0
binary:
	export SWCOMMIT=$(shell git rev-parse --short HEAD)
	export SWLDFLAGS="-X github.com/seaweedfs/seaweedfs/weed/util/version.COMMIT=$(SWCOMMIT)"
	cd ../weed && CGO_ENABLED=$(cgo) GOOS=linux go build $(options) -tags "$(tags)" -ldflags "-s -w -extldflags -static $(SWLDFLAGS)" && mv weed ../docker/
	cd ../other/mq_client_example/agent_pub_record && CGO_ENABLED=$(cgo) GOOS=linux go build && mv agent_pub_record ../../../docker/
	cd ../other/mq_client_example/agent_sub_record && CGO_ENABLED=$(cgo) GOOS=linux go build && mv agent_sub_record ../../../docker/

binary_race: options = -race
binary_race: cgo = 1
binary_race: binary

build: binary
	docker build --no-cache -t chrislusf/seaweedfs:local -f Dockerfile.local .

build_e2e: binary_race
	docker build --no-cache -t chrislusf/seaweedfs:e2e -f Dockerfile.e2e .

go_build: # make go_build tags=elastic,ydb,gocdk,hdfs,5BytesOffset,tarantool
	docker build --build-arg TAGS=$(tags) --no-cache -t chrislusf/seaweedfs:go_build -f Dockerfile.go_build .

go_build_large_disk:
	docker build --build-arg TAGS=large_disk --no-cache -t chrislusf/seaweedfs:large_disk -f Dockerfile.go_build .

build_rocksdb_dev_env:
	docker build --no-cache -t chrislusf/rocksdb_dev_env -f Dockerfile.rocksdb_dev_env .

build_rocksdb_local: build_rocksdb_dev_env
	cd .. ; docker build --no-cache -t chrislusf/seaweedfs:rocksdb_local -f docker/Dockerfile.rocksdb_large_local .

build_rocksdb:
	docker build --no-cache -t chrislusf/seaweedfs:rocksdb -f Dockerfile.rocksdb_large .

build_tarantool_dev_env:
	docker build --no-cache -t chrislusf/tarantool_dev_env -f Dockerfile.tarantool.dev_env .

s3tests_build:
	docker build --no-cache -t chrislusf/ceph-s3-tests:local -f Dockerfile.s3tests .

dev: build
	docker compose -f compose/local-dev-compose.yml -p seaweedfs up

dev_race: binary_race
	docker compose -f compose/local-dev-compose.yml -p seaweedfs up

dev_tls: build certstrap
	ENV_FILE="tls.env" docker compose -f compose/local-dev-compose.yml -p seaweedfs up

dev_mount: build
	docker compose -f compose/local-mount-compose.yml -p seaweedfs up

run_image: build
	docker run --rm -ti --device /dev/fuse --cap-add SYS_ADMIN --entrypoint /bin/sh chrislusf/seaweedfs:local

profile_mount: build
	docker compose -f compose/local-mount-profile-compose.yml -p seaweedfs up

k8s: build
	docker compose -f compose/local-k8s-compose.yml -p seaweedfs up

dev_registry: build
	docker compose -f compose/local-registry-compose.yml -p seaweedfs up

dev_replicate:
	docker build --build-arg TAGS=gocdk --no-cache -t chrislusf/seaweedfs:local -f Dockerfile.go_build .
	docker compose -f compose/local-replicate-compose.yml -p seaweedfs up

dev_auditlog: build
	docker compose -f compose/local-auditlog-compose.yml -p seaweedfs up

dev_nextcloud: build
	docker compose -f compose/local-nextcloud-compose.yml -p seaweedfs up

cluster: build
	docker compose -f compose/local-cluster-compose.yml -p seaweedfs up

2clusters: build
	docker compose -f compose/local-clusters-compose.yml -p seaweedfs up

2mount: build
	docker compose -f compose/local-sync-mount-compose.yml -p seaweedfs up

filer_backup: build
	docker compose -f compose/local-filer-backup-compose.yml -p seaweedfs up

hashicorp_raft: build
	docker compose -f compose/local-hashicorp-raft-compose.yml -p seaweedfs up

s3tests: build s3tests_build
	docker compose -f compose/local-s3tests-compose.yml -p seaweedfs up

brokers: build
	docker compose -f compose/local-brokers-compose.yml -p seaweedfs up

agent: build
	docker compose -f compose/local-mq-test.yml -p seaweedfs up

filer_etcd: build
	docker stack deploy -c compose/swarm-etcd.yml fs

test_etcd: build
	docker compose -f compose/test-etcd-filer.yml -p seaweedfs up

test_ydb: tags = ydb
test_ydb: build
	docker compose -f compose/test-ydb-filer.yml -p seaweedfs up

test_tarantool: tags = tarantool
test_tarantool: build_tarantool_dev_env build
	docker compose -f compose/test-tarantool-filer.yml -p seaweedfs up

clean:
	rm ./weed

certstrap:
	go install -v github.com/square/certstrap@latest
	certstrap --depot-path compose/tls init --curve P-256 --passphrase "" --common-name "SeaweedFS CA" || true
	certstrap --depot-path compose/tls request-cert --ou "SeaweedFS" --curve P-256 --passphrase "" --domain localhost --common-name volume01.dev || true
	certstrap --depot-path compose/tls request-cert --ou "SeaweedFS" --curve P-256 --passphrase "" --common-name master01.dev || true
	certstrap --depot-path compose/tls request-cert --ou "SeaweedFS" --curve P-256 --passphrase "" --common-name filer01.dev || true
	certstrap --depot-path compose/tls request-cert --ou "SeaweedFS" --curve P-256 --passphrase "" --common-name client01.dev || true
	certstrap --depot-path compose/tls sign --CA "SeaweedFS CA" volume01.dev || true
	certstrap --depot-path compose/tls sign --CA "SeaweedFS CA" master01.dev || true
	certstrap --depot-path compose/tls sign --CA "SeaweedFS CA" filer01.dev || true
	certstrap --depot-path compose/tls sign --CA "SeaweedFS CA" client01.dev || true