-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathMakefile
More file actions
57 lines (52 loc) · 2.02 KB
/
Makefile
File metadata and controls
57 lines (52 loc) · 2.02 KB
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
CONTAINER_NAME ?= rcore-container
DOCKER_NAME ?= rcore-docker
.PHONY: docker build_docker attach_docker rebuild_docker fmt
docker:
if ! docker images --format "{{.Repository}}" | grep -q "^${DOCKER_NAME}$$"; then \
echo "❌ image '${DOCKER_NAME}' not exits,start building..."; \
make build_docker; \
else \
echo "✅ image '${DOCKER_NAME}' was built, skip building..."; \
fi; \
if docker ps -a --filter "name=^/${CONTAINER_NAME}$$" --format "{{.Names}}" | grep -q "${CONTAINER_NAME}"; then \
echo "✅ find existing container: ${CONTAINER_NAME},accessing..."; \
if ! docker ps --filter "name=^/${CONTAINER_NAME}$$" --format "{{.Names}}" | grep -q "${CONTAINER_NAME}"; then \
echo "🔧 container isn't running,start launching..."; \
docker start ${CONTAINER_NAME}; \
fi; \
docker exec -it ${CONTAINER_NAME} bash; \
else \
echo "🚀 no existing container is found: ${CONTAINER_NAME},start creating new container..."; \
docker run --network host -it -d \
--name ${CONTAINER_NAME} \
-v ${CURDIR}:/mnt \
-w /mnt \
${DOCKER_NAME} \
bash; \
docker exec -it ${CONTAINER_NAME} bash; \
fi
# build docker if container doesn't exist
build_docker:
docker build -t ${DOCKER_NAME} .
attach_docker:
@if docker ps -a --filter "name=^/${CONTAINER_NAME}$$" --format "{{.Names}}" | grep -q "${CONTAINER_NAME}"; then \
if ! docker ps --filter "name=^/${CONTAINER_NAME}$$" --format "{{.Names}}" | grep -q "${CONTAINER_NAME}"; then \
docker start ${CONTAINER_NAME}; \
fi; \
docker exec -it ${CONTAINER_NAME} bash; \
else \
echo "❌ no existing container is found: ${CONTAINER_NAME},please run 'make docker' to create container"; \
fi
rebuild_docker:
@echo "🗑️ delete existing container ${CONTAINER_NAME}..."; \
docker rm -f ${CONTAINER_NAME} 2>/dev/null; \
echo "🚀 start creating container..."; \
docker run --network host -it -d \
--name ${CONTAINER_NAME} \
-v ${CURDIR}:/mnt \
-w /mnt \
${DOCKER_NAME} \
bash; \
docker exec -it ${CONTAINER_NAME} bash;
fmt:
cd os ; cargo fmt; cd ..