Skip to content

Commit d35b0a4

Browse files
committed
Merge ch1 to ch2: Merge pull request #5 from 0x822a5b87/ch1
[ch1][update]optimizing makefile for docker
2 parents cfd08f6 + 4b85deb commit d35b0a4

1 file changed

Lines changed: 51 additions & 6 deletions

File tree

Makefile

Lines changed: 51 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,57 @@
1+
CONTAINER_NAME ?= rcore-container
12
DOCKER_NAME ?= rcore-docker
2-
.PHONY: docker build_docker
3-
3+
.PHONY: docker build_docker attach_docker rebuild_docker fmt
4+
45
docker:
5-
docker run --network host --rm -it -v ${PWD}:/mnt -w /mnt ${DOCKER_NAME} bash
6+
if ! docker images --format "{{.Repository}}" | grep -q "^${DOCKER_NAME}$$"; then \
7+
echo "❌ image '${DOCKER_NAME}' not exits,start building..."; \
8+
make build_docker; \
9+
else \
10+
echo "✅ image '${DOCKER_NAME}' was built, skip building..."; \
11+
fi; \
12+
if docker ps -a --filter "name=^/${CONTAINER_NAME}$$" --format "{{.Names}}" | grep -q "${CONTAINER_NAME}"; then \
13+
echo "✅ find existing container: ${CONTAINER_NAME},accessing..."; \
14+
if ! docker ps --filter "name=^/${CONTAINER_NAME}$$" --format "{{.Names}}" | grep -q "${CONTAINER_NAME}"; then \
15+
echo "🔧 container isn't running,start launching..."; \
16+
docker start ${CONTAINER_NAME}; \
17+
fi; \
18+
docker exec -it ${CONTAINER_NAME} bash; \
19+
else \
20+
echo "🚀 no existing container is found: ${CONTAINER_NAME},start creating new container..."; \
21+
docker run --network host -it -d \
22+
--name ${CONTAINER_NAME} \
23+
-v ${CURDIR}:/mnt \
24+
-w /mnt \
25+
${DOCKER_NAME} \
26+
bash; \
27+
docker exec -it ${CONTAINER_NAME} bash; \
28+
fi
629

7-
build_docker:
30+
# build docker if container doesn't exist
31+
build_docker:
832
docker build -t ${DOCKER_NAME} .
933

10-
fmt:
11-
cd os ; cargo fmt; cd ..
34+
attach_docker:
35+
@if docker ps -a --filter "name=^/${CONTAINER_NAME}$$" --format "{{.Names}}" | grep -q "${CONTAINER_NAME}"; then \
36+
if ! docker ps --filter "name=^/${CONTAINER_NAME}$$" --format "{{.Names}}" | grep -q "${CONTAINER_NAME}"; then \
37+
docker start ${CONTAINER_NAME}; \
38+
fi; \
39+
docker exec -it ${CONTAINER_NAME} bash; \
40+
else \
41+
echo "❌ no existing container is found: ${CONTAINER_NAME},please run 'make docker' to create container"; \
42+
fi
1243

44+
rebuild_docker:
45+
@echo "🗑️ delete existing container ${CONTAINER_NAME}..."; \
46+
docker rm -f ${CONTAINER_NAME} 2>/dev/null; \
47+
echo "🚀 start creating container..."; \
48+
docker run --network host -it -d \
49+
--name ${CONTAINER_NAME} \
50+
-v ${CURDIR}:/mnt \
51+
-w /mnt \
52+
${DOCKER_NAME} \
53+
bash; \
54+
docker exec -it ${CONTAINER_NAME} bash;
55+
56+
fmt:
57+
cd os ; cargo fmt; cd ..

0 commit comments

Comments
 (0)