1414# See the License for the specific language governing permissions and
1515# limitations under the License.
1616
17+ HUB ?= docker.io/apache
18+ PROJECT ?= skywalking-python
19+
1720D := docker
1821
1922P := grpc http kafka
2023
21- TARGETS := py3.7 py3.8 py3.9 py3.10 py3.11 py3. 7-slim py3.8-slim py3.9-slim py3.10-slim py3.11 -slim
24+ TARGETS := py3.7 py3.8 py3.9 py3.10 py3.7-slim py3.8-slim py3.9-slim py3.10-slim
2225
2326py3.7 : BASE_PYTHON_IMAGE = python:3.7
2427py3.8 : BASE_PYTHON_IMAGE = python:3.8
@@ -31,24 +34,62 @@ py3.9-slim: BASE_PYTHON_IMAGE = python:3.9-slim
3134py3.10-slim : BASE_PYTHON_IMAGE = python:3.10-slim
3235py3.11-slim : BASE_PYTHON_IMAGE = python:3.11-slim
3336
37+ push-py3.7 : BASE_PYTHON_IMAGE = python:3.7
38+ push-py3.8 : BASE_PYTHON_IMAGE = python:3.8
39+ push-py3.9 : BASE_PYTHON_IMAGE = python:3.9
40+ push-py3.10 : BASE_PYTHON_IMAGE = python:3.10
41+ push-py3.11 : BASE_PYTHON_IMAGE = python:3.11
42+ push-py3.7-slim : BASE_PYTHON_IMAGE = python:3.7-slim
43+ push-py3.8-slim : BASE_PYTHON_IMAGE = python:3.8-slim
44+ push-py3.9-slim : BASE_PYTHON_IMAGE = python:3.9-slim
45+ push-py3.10-slim : BASE_PYTHON_IMAGE = python:3.10-slim
46+ push-py3.11-slim : BASE_PYTHON_IMAGE = python:3.11-slim
47+
48+ push-py3.7 : BUILDER_PYTHON_IMAGE = python:3.7
49+ push-py3.8 : BUILDER_PYTHON_IMAGE = python:3.8
50+ push-py3.9 : BUILDER_PYTHON_IMAGE = python:3.9
51+ push-py3.10 : BUILDER_PYTHON_IMAGE = python:3.10
52+ push-py3.11 : BUILDER_PYTHON_IMAGE = python:3.11
53+ push-py3.7-slim : BUILDER_PYTHON_IMAGE = python:3.7
54+ push-py3.8-slim : BUILDER_PYTHON_IMAGE = python:3.8
55+ push-py3.9-slim : BUILDER_PYTHON_IMAGE = python:3.9
56+ push-py3.10-slim : BUILDER_PYTHON_IMAGE = python:3.10
57+ push-py3.11-slim : BUILDER_PYTHON_IMAGE = python:3.11
58+
3459PUSH_TARGETS := $(TARGETS:%=push-% )
3560
3661build : $(TARGETS )
3762push : $(PUSH_TARGETS )
3863
64+
65+
3966$(TARGETS ) :
67+ cd ..; \
4068 for p in $( P) ; do \
4169 $(D ) build $(SW_BUILD_ARGS ) \
70+ -f docker/Dockerfile \
4271 --build-arg BASE_PYTHON_IMAGE=$(BASE_PYTHON_IMAGE ) \
4372 --build-arg SW_PYTHON_AGENT_PROTOCOL=$$ p \
4473 --build-arg SW_PYTHON_AGENT_VERSION=${AGENT_VERSION} \
45- -t apache/skywalking-python :${AGENT_VERSION} -$$ p-$@ \
74+ -t $( HUB ) / $( PROJECT ) :${AGENT_VERSION} -$$ p-$@ \
4675 . ; \
4776 done
4877
4978
5079$(PUSH_TARGETS ) :
5180 $(eval version := $(subst push-,,$@ ) )
81+ docker buildx create --driver docker-container --name skywalking_python_main_$(version ) > /dev/null 2>&1 || true ;
82+ cd ..; \
5283 for p in $( P) ; do \
53- $(D ) push apache/skywalking-python:${AGENT_VERSION} -$$ p-${version} ; \
84+ $(D ) buildx build $(SW_BUILD_ARGS ) \
85+ --builder skywalking_python_main_$(version ) \
86+ -f docker/Dockerfile \
87+ --platform linux/amd64,linux/arm64 --push \
88+ --build-arg BASE_PYTHON_IMAGE=$(BASE_PYTHON_IMAGE ) \
89+ --build-arg BUILDER_PYTHON_IMAGE=$(BUILDER_PYTHON_IMAGE ) \
90+ --build-arg SW_PYTHON_AGENT_PROTOCOL=$$ p \
91+ --build-arg SW_PYTHON_AGENT_VERSION=${AGENT_VERSION} \
92+ -t $(HUB ) /$(PROJECT ) :${AGENT_VERSION} -$$ p-${version} \
93+ . ; \
5494 done
95+ docker buildx rm skywalking_python_main_$(version ) || true ;
0 commit comments