Task: Add docker container inside alpine linux for docker image and github workflows
This commit is contained in:
commit
4a987fb30e
27
.github/workflows/docker-publish.yml
vendored
Normal file
27
.github/workflows/docker-publish.yml
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
name: Docker CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
|
||||
jobs:
|
||||
docker:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
-
|
||||
name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
-
|
||||
name: Login to DockerHub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_SECRET }}
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
-
|
||||
name: Build and Push from Makefile
|
||||
run: |
|
||||
make build
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.dccache
|
52
Dockerfile
Normal file
52
Dockerfile
Normal file
@ -0,0 +1,52 @@
|
||||
FROM cubetiq/calpine-os-linux:latest
|
||||
LABEL maintainer="sombochea@cubetiqs.com"
|
||||
|
||||
RUN apk add --no-cache \
|
||||
ca-certificates \
|
||||
openssh-client
|
||||
|
||||
RUN [ ! -e /etc/nsswitch.conf ] && echo 'hosts: files dns' > /etc/nsswitch.conf
|
||||
|
||||
ENV DOCKER_VERSION 20.10.7
|
||||
|
||||
RUN set -eux; \
|
||||
\
|
||||
apkArch="$(apk --print-arch)"; \
|
||||
case "$apkArch" in \
|
||||
'x86_64') \
|
||||
url='https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_VERSION}.tgz'; \
|
||||
;; \
|
||||
'armhf') \
|
||||
url='https://download.docker.com/linux/static/stable/armel/docker-${DOCKER_VERSION}.tgz'; \
|
||||
;; \
|
||||
'armv7') \
|
||||
url='https://download.docker.com/linux/static/stable/armhf/docker-${DOCKER_VERSION}.tgz'; \
|
||||
;; \
|
||||
'aarch64') \
|
||||
url='https://download.docker.com/linux/static/stable/aarch64/docker-${DOCKER_VERSION}.tgz'; \
|
||||
;; \
|
||||
*) echo >&2 "error: unsupported architecture ($apkArch)"; exit 1 ;; \
|
||||
esac; \
|
||||
\
|
||||
wget -O docker.tgz "$url"; \
|
||||
\
|
||||
tar --extract \
|
||||
--file docker.tgz \
|
||||
--strip-components 1 \
|
||||
--directory /usr/local/bin/ \
|
||||
; \
|
||||
rm docker.tgz; \
|
||||
\
|
||||
dockerd --version; \
|
||||
docker --version
|
||||
|
||||
COPY modprobe.sh /usr/local/bin/modprobe
|
||||
COPY docker-entrypoint.sh /usr/local/bin/
|
||||
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||
RUN chmod +x /usr/local/bin/modprobe
|
||||
|
||||
ENV DOCKER_TLS_CERTDIR=/certs
|
||||
RUN mkdir /certs /certs/client && chmod 1777 /certs /certs/client
|
||||
|
||||
ENTRYPOINT ["docker-entrypoint.sh"]
|
||||
CMD ["sh"]
|
13
Makefile
Normal file
13
Makefile
Normal file
@ -0,0 +1,13 @@
|
||||
DOCKER_IMAGE=cubetiq/calpine-docker
|
||||
DOCKER_IMAGE_NAME=${DOCKER_IMAGE}:20.10.7
|
||||
|
||||
build:
|
||||
@echo 'Starting docker build'
|
||||
docker build . -t ${DOCKER_IMAGE}
|
||||
|
||||
@echo 'Starting docker push'
|
||||
docker tag ${DOCKER_IMAGE} ${DOCKER_IMAGE_NAME}
|
||||
docker push ${DOCKER_IMAGE}
|
||||
docker push ${DOCKER_IMAGE_NAME}
|
||||
|
||||
.PHONY:build
|
56
README.md
Normal file
56
README.md
Normal file
@ -0,0 +1,56 @@
|
||||
# CUBETIQ Alpine OS Linux with Docker 20.10.7
|
||||
![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/cubetiq/calpine-docker)
|
||||
![Docker Pulls](https://img.shields.io/docker/pulls/cubetiq/calpine-docker)
|
||||
|
||||
- CUBETIQ Alpine OS Linux (3.13.3)
|
||||
- Docker (20.10.7)
|
||||
|
||||
# [Docker Hub](https://hub.docker.com/r/cubetiq/calpine-docker)
|
||||
```shell
|
||||
docker push cubetiq/calpine-docker
|
||||
```
|
||||
|
||||
# Usage
|
||||
```shell
|
||||
docker run --rm -it cubetiq/calpine-docker /bin/sh
|
||||
```
|
||||
|
||||
# Example
|
||||
```Dockerfile
|
||||
FROM cubetiq/calpine-docker:latest
|
||||
LABEL maintainer="sombochea@cubetiqs.com"
|
||||
|
||||
RUN docker version
|
||||
|
||||
CMD [ "sh" ]
|
||||
```
|
||||
|
||||
# Reference
|
||||
- Docker: [GitHub](https://github.com/docker-library/docker/tree/279ba9c93e8e26a15171645bd511ea8476c4706e/20.10)
|
||||
|
||||
# Contributors
|
||||
- Sambo Chea <sombochea@cubetiqs.com>
|
||||
|
||||
# License
|
||||
```text
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2018-2020 Dave Hall <skwashd@gmail.com>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECT
|
||||
```
|
0
docker-entrypoint.sh
Normal file
0
docker-entrypoint.sh
Normal file
12
modprobe.sh
Normal file
12
modprobe.sh
Normal file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
for module; do
|
||||
if [ "${module#-}" = "$module" ]; then
|
||||
ip link show "$module" || true
|
||||
lsmod | grep "$module" || true
|
||||
fi
|
||||
done
|
||||
|
||||
export PATH='/usr/sbin:/usr/bin:/sbin:/bin'
|
||||
exec modprobe "$@"
|
Loading…
Reference in New Issue
Block a user