2
0
mirror of https://github.com/woahbase/alpine-searx synced 2025-08-22 01:47:27 +00:00

added support for armv7l and aarch64

This commit is contained in:
lapnapra 2019-07-07 17:14:13 +05:30
parent 7a2ed19177
commit 0ae2d42d10
7 changed files with 127 additions and 37 deletions

View File

@ -6,17 +6,16 @@ language: bash
services: docker services: docker
env: env:
matrix: matrix:
- ARCH=x86_64 PUID=1000 PGID=1000 - ARCH=x86_64 PUID=1000 PGID=1000
- ARCH=armhf PUID=1001 PGID=1001 - ARCH=armhf PUID=1001 PGID=1001
global: - ARCH=armv7l PUID=1001 PGID=1001
- secure: hG+l672xO3hrM1zPsGR9ztOU664JVjBCHtGrkYa+X36xFsrp8ZAUh6SXQORqTk17DcLl6bvxkl8Cgp67yEWe26W6gNNdUHzqQJ4sSEX/e9ikQTzfEugcHDHQxmAhneWZeVXZ7rpf6HObNI9nE0igb7Xd8+Z2jEj/VhCi16B44V7y5vEwyr9IDJUAlRtyA/Y0bBve6xOjZNRxO1nrz0lwIwdvwRjG5HDRgk8P9cukiKz958VgW4avAoag26BJPCPXRHMHCoxQTwRhv8K6EL3BJjO1rC0pCm15BLlTwNd2WO2Zc51Kk/vvJ1zSqJJdwUEnIIur1aNIcCSXDHgOkcUW+3FfV1N/F5LDVArQSZ+F6fCJDU7bsun9Ror0I/1DcGmNcXipdLx1J2OhII06YAltypkQ0Bh/PYUb0KhVFbEVt7D6hWaaq9vs/TlyMeJE69drM/NF9Hd11wsAaYDqjrB247yn09lJlEdpYIaqqrle/zKaqK/SkDzPsNxvOMepMkhbaSkFGycP60fLoHXj985jWeHHmSozT3IFgpKKGPK5lkD5l9I01v6P9rRakX7RTcUUHN4Dc0gMTytv4BQFBXJk6QtGpcXUKhGy1+XdUu46OMmQrLVrsWLtYLKBm87BmMJWGWKvPnWBCBA95itsSiKZ0X3dx7+/lTp5w/ZX1nDZp4k= - ARCH=aarch64 PUID=1001 PGID=1001
- secure: 0AlVZlewZstJocxLDNBh6AIsQukOZussohaAuirBGit6uWDf6ldp39MRPy4ApT8E4f+5j9fjLfeobBEFPGNBkbmEAslVuDoXNx3Yx6hAI+msOYUBMLcF3CEvo26WB7MHxHXupLIh9PppGb7VkYLmGWkJhulrXFoTWa8wUbLcYUNQRAvKVMUJo5IwWJnG8XrvOdFns2U9IV2hcGoE9dXFqWJW1RB+Wizm6i3tAbL/fstOb4pxyS7/tVfaekzknZEunhVNjDNP8O3XSNGRFdwcba3raOvs4aqye3Sze/IczWshGzWHehhMqEmMfCuIPdi6Pgo9eHGC9Yv1a2pk0PthWXboWBWSoMEM0dJqMdY6XhZcM2ur3QLNZV0xTWZCK9dyirpy1VuW4ysMpi6mPwVxwHbAOWRyguXMAMkcwjrCtfZHWXUvG8ggBYQfIe0jNQHwKs2BzFPQYM+Kp3PDPIjreHwIs2ioLVdcifoJ64Pnx1K2yqHkQCKs0a5/oFdCTsX9cuY97C+plteQacITwCiil/+doV8CcsX3rDXQGKk6gel/ith8rScX2Gl0gOiIdD3id9Z5qZzSoQ2wOoLIOYDYgh8UrvMtuGUKgjgtqVbpoeOc7r2t4ayayWclj+UARk5vgjvCveyOTufoNV/CN5PA0s8/sak9dwJXstI1Jaj21pc=
install: true
before_script: before_script:
- uname -a
- docker --version - docker --version
- make --version - make --version
script: script:
- travis_wait 30 make ARCH=${ARCH} PUID=${PUID} PGID=${PGID} build - travis_wait 30 make ARCH=${ARCH} BUILD_NUMBER=${TRAVIS_BUILD_NUMBER} BRANCH=${TRAVIS_BRANCH} PUID=${PUID} PGID=${PGID} build
- make ARCH=${ARCH} PUID=${PUID} PGID=${PGID} test - make ARCH=${ARCH} PUID=${PUID} PGID=${PGID} test
after_success: after_success:
- docker login -u ${DOCKER_USER} -p ${DOCKER_PASS} - docker login -u ${DOCKER_USER} -p ${DOCKER_PASS}

38
Dockerfile_aarch64 Normal file
View File

@ -0,0 +1,38 @@
ARG DOCKERSRC=frommakefile
#
FROM ${DOCKERSRC}
#
ARG PUID=991
ARG PGID=991
#
ENV BASE_URL=False IMAGE_PROXY=False
RUN set -xe \
&& apk add -Uu --no-cache --purge \
ca-certificates \
curl \
libxml2 \
libxslt \
openssl \
&& apk add --no-cache -t build-dependencies \
build-base \
python3-dev \
libffi-dev \
libxslt-dev \
libxml2-dev \
openssl-dev \
tar \
&& pip install -v --no-cache -r https://raw.githubusercontent.com/asciimoo/searx/master/requirements.txt \
&& mkdir /usr/local/searx \
&& cd /usr/local/searx \
&& curl -SL https://github.com/asciimoo/searx/archive/master.tar.gz | tar xz --strip 1 \
&& sed -i "s/127.0.0.1/0.0.0.0/g" searx/settings.yml \
&& apk del --purge build-dependencies \
&& rm -f /var/cache/apk/* /tmp/*
#
COPY root/ /
#
VOLUME /data
#
EXPOSE 8888
#
ENTRYPOINT ["/init"]

View File

@ -1,8 +1,6 @@
ARG ARCH=frommakefile
ARG DOCKERSRC=frommakefile ARG DOCKERSRC=frommakefile
ARG USERNAME=frommakefile
# #
FROM ${USERNAME}/${DOCKERSRC}:${ARCH} FROM ${DOCKERSRC}
# #
ARG PUID=991 ARG PUID=991
ARG PGID=991 ARG PGID=991
@ -10,11 +8,12 @@ ARG PGID=991
ENV BASE_URL=False IMAGE_PROXY=False ENV BASE_URL=False IMAGE_PROXY=False
RUN set -xe \ RUN set -xe \
&& apk add -Uu --no-cache --purge \ && apk add -Uu --no-cache --purge \
ca-certificates \
curl \
libxml2 \ libxml2 \
libxslt \ libxslt \
openssl \ openssl \
&& apk add --no-cache -t build-dependencies \ && apk add --no-cache -t build-dependencies \
curl \
build-base \ build-base \
python3-dev \ python3-dev \
libffi-dev \ libffi-dev \
@ -22,7 +21,6 @@ RUN set -xe \
libxml2-dev \ libxml2-dev \
openssl-dev \ openssl-dev \
tar \ tar \
ca-certificates \
&& pip install -v --no-cache -r https://raw.githubusercontent.com/asciimoo/searx/master/requirements.txt \ && pip install -v --no-cache -r https://raw.githubusercontent.com/asciimoo/searx/master/requirements.txt \
&& mkdir /usr/local/searx \ && mkdir /usr/local/searx \
&& cd /usr/local/searx \ && cd /usr/local/searx \

38
Dockerfile_armv7l Normal file
View File

@ -0,0 +1,38 @@
ARG DOCKERSRC=frommakefile
#
FROM ${DOCKERSRC}
#
ARG PUID=991
ARG PGID=991
#
ENV BASE_URL=False IMAGE_PROXY=False
RUN set -xe \
&& apk add -Uu --no-cache --purge \
ca-certificates \
curl \
libxml2 \
libxslt \
openssl \
&& apk add --no-cache -t build-dependencies \
build-base \
python3-dev \
libffi-dev \
libxslt-dev \
libxml2-dev \
openssl-dev \
tar \
&& pip install -v --no-cache -r https://raw.githubusercontent.com/asciimoo/searx/master/requirements.txt \
&& mkdir /usr/local/searx \
&& cd /usr/local/searx \
&& curl -SL https://github.com/asciimoo/searx/archive/master.tar.gz | tar xz --strip 1 \
&& sed -i "s/127.0.0.1/0.0.0.0/g" searx/settings.yml \
&& apk del --purge build-dependencies \
&& rm -f /var/cache/apk/* /tmp/*
#
COPY root/ /
#
VOLUME /data
#
EXPOSE 8888
#
ENTRYPOINT ["/init"]

View File

@ -1,8 +1,6 @@
ARG ARCH=frommakefile
ARG DOCKERSRC=frommakefile ARG DOCKERSRC=frommakefile
ARG USERNAME=frommakefile
# #
FROM ${USERNAME}/${DOCKERSRC}:${ARCH} FROM ${DOCKERSRC}
# #
ARG PUID=991 ARG PUID=991
ARG PGID=991 ARG PGID=991
@ -10,11 +8,12 @@ ARG PGID=991
ENV BASE_URL=False IMAGE_PROXY=False ENV BASE_URL=False IMAGE_PROXY=False
RUN set -xe \ RUN set -xe \
&& apk add -Uu --no-cache --purge \ && apk add -Uu --no-cache --purge \
ca-certificates \
curl \
libxml2 \ libxml2 \
libxslt \ libxslt \
openssl \ openssl \
&& apk add --no-cache -t build-dependencies \ && apk add --no-cache -t build-dependencies \
curl \
build-base \ build-base \
python3-dev \ python3-dev \
libffi-dev \ libffi-dev \
@ -22,7 +21,6 @@ RUN set -xe \
libxml2-dev \ libxml2-dev \
openssl-dev \ openssl-dev \
tar \ tar \
ca-certificates \
&& pip install -v --no-cache -r https://raw.githubusercontent.com/asciimoo/searx/master/requirements.txt \ && pip install -v --no-cache -r https://raw.githubusercontent.com/asciimoo/searx/master/requirements.txt \
&& mkdir /usr/local/searx \ && mkdir /usr/local/searx \
&& cd /usr/local/searx \ && cd /usr/local/searx \

View File

@ -1,4 +1,4 @@
[![build status][251]][232] [![commit][255]][231] [![version:x86_64][256]][235] [![size:x86_64][257]][235] [![version:armhf][258]][236] [![size:armhf][259]][236] [![build status][251]][232] [![commit][255]][231] [![version:x86_64][256]][235] [![size:x86_64][257]][235] [![version:armhf][258]][236] [![size:armhf][259]][236] [![version:armv7l][260]][237] [![size:armv7l][261]][237] [![version:aarch64][262]][238] [![size:aarch64][263]][238]
## [Alpine-SearX][234] ## [Alpine-SearX][234]
#### Container for Alpine Linux + S6 + Python3 + SearX #### Container for Alpine Linux + S6 + Python3 + SearX
@ -14,11 +14,13 @@ the [s6][133] init system [overlayed][134] in it.
The image is tagged respectively for the following architectures, The image is tagged respectively for the following architectures,
* **armhf** * **armhf**
* **armv7l**
* **aarch64**
* **x86_64** (retagged as the `latest` ) * **x86_64** (retagged as the `latest` )
**armhf** builds have embedded binfmt_misc support and contain the **non-x86_64** builds have embedded binfmt_misc support and contain the
[qemu-user-static][105] binary that allows for running it also inside [qemu-user-static][105] binary that allows for running it also inside
an x64 environment that has it. an x86_64 environment that has it.
--- ---
#### Get the Image #### Get the Image
@ -98,14 +100,14 @@ docker restart docker_searx
Get a shell inside a already running container, Get a shell inside a already running container,
``` ```
# make shell # make debug
docker exec -it docker_searx /bin/bash docker exec -it docker_searx /bin/bash
``` ```
set user or login as root, set user or login as root,
``` ```
# make rshell # make debug
docker exec -u root -it docker_searx /bin/bash docker exec -u root -it docker_searx /bin/bash
``` ```
@ -155,11 +157,9 @@ for other architectures.]
docker build --rm --compress --force-rm \ docker build --rm --compress --force-rm \
--no-cache=true --pull \ --no-cache=true --pull \
-f ./Dockerfile_x86_64 \ -f ./Dockerfile_x86_64 \
--build-arg ARCH=x86_64 \ --build-arg DOCKERSRC=woahbase/alpine-python3:x86_64 \
--build-arg DOCKERSRC=alpine-python3 \
--build-arg PGID=1000 \ --build-arg PGID=1000 \
--build-arg PUID=1000 \ --build-arg PUID=1000 \
--build-arg USERNAME=woahbase \
-t woahbase/alpine-searx:x86_64 \ -t woahbase/alpine-searx:x86_64 \
. .
``` ```
@ -219,6 +219,8 @@ Maintained by [WOAHBase][204].
[234]: https://woahbase.online/#/images/alpine-searx [234]: https://woahbase.online/#/images/alpine-searx
[235]: https://microbadger.com/images/woahbase/alpine-searx:x86_64 [235]: https://microbadger.com/images/woahbase/alpine-searx:x86_64
[236]: https://microbadger.com/images/woahbase/alpine-searx:armhf [236]: https://microbadger.com/images/woahbase/alpine-searx:armhf
[237]: https://microbadger.com/images/woahbase/alpine-searx:armv7l
[238]: https://microbadger.com/images/woahbase/alpine-searx:aarch64
[251]: https://travis-ci.org/woahbase/alpine-searx.svg?branch=master [251]: https://travis-ci.org/woahbase/alpine-searx.svg?branch=master
@ -229,3 +231,9 @@ Maintained by [WOAHBase][204].
[258]: https://images.microbadger.com/badges/version/woahbase/alpine-searx:armhf.svg [258]: https://images.microbadger.com/badges/version/woahbase/alpine-searx:armhf.svg
[259]: https://images.microbadger.com/badges/image/woahbase/alpine-searx:armhf.svg [259]: https://images.microbadger.com/badges/image/woahbase/alpine-searx:armhf.svg
[256]: https://images.microbadger.com/badges/version/woahbase/alpine-searx:armv7l.svg
[257]: https://images.microbadger.com/badges/image/woahbase/alpine-searx:armv7l.svg
[258]: https://images.microbadger.com/badges/version/woahbase/alpine-searx:aarch64.svg
[259]: https://images.microbadger.com/badges/image/woahbase/alpine-searx:aarch64.svg

View File

@ -1,7 +1,7 @@
# {{{ -- meta # {{{ -- meta
HOSTARCH := x86_64# on travis.ci HOSTARCH := $(shell uname -m | sed "s_armv6l_armhf_")# x86_64# on travis.ci
ARCH := $(shell uname -m | sed "s_armv7l_armhf_")# armhf/x86_64 auto-detect on build and run ARCH := $(shell uname -m | sed "s_armv6l_armhf_")# armhf/x86_64 auto-detect on build and run
OPSYS := alpine OPSYS := alpine
SHCOMMAND := /bin/bash SHCOMMAND := /bin/bash
SVCNAME := searx SVCNAME := searx
@ -16,16 +16,25 @@ IMAGETAG := $(USERNAME)/$(DOCKEREPO):$(ARCH)
CNTNAME := $(SVCNAME) # name for container name : docker_name, hostname : name CNTNAME := $(SVCNAME) # name for container name : docker_name, hostname : name
BUILD_NUMBER := 0#assigned in .travis.yml
BRANCH := master
# -- }}} # -- }}}
# {{{ -- flags # {{{ -- flags
BUILDFLAGS := --rm --force-rm --compress -f $(CURDIR)/Dockerfile_$(ARCH) -t $(IMAGETAG) \ BUILDFLAGS := --rm --force-rm --compress \
--build-arg ARCH=$(ARCH) \ -f $(CURDIR)/Dockerfile_$(ARCH) \
--build-arg DOCKERSRC=$(DOCKERSRC) \ -t $(IMAGETAG) \
--build-arg USERNAME=$(USERNAME) \ --build-arg DOCKERSRC=$(USERNAME)/$(DOCKERSRC):$(ARCH) \
--build-arg PUID=$(PUID) \ --build-arg PUID=$(PUID) \
--build-arg PGID=$(PGID) \ --build-arg PGID=$(PGID) \
--build-arg http_proxy=$(http_proxy) \
--build-arg https_proxy=$(https_proxy) \
--build-arg no_proxy=$(no_proxy) \
--label online.woahbase.source-image=$(DOCKERSRC) \
--label online.woahbase.build-number=$(BUILD_NUMBER) \
--label online.woahbase.branch=$(BRANCH) \
--label org.label-schema.build-date=$(shell date -u +"%Y-%m-%dT%H:%M:%SZ") \ --label org.label-schema.build-date=$(shell date -u +"%Y-%m-%dT%H:%M:%SZ") \
--label org.label-schema.name=$(DOCKEREPO) \ --label org.label-schema.name=$(DOCKEREPO) \
--label org.label-schema.schema-version="1.0" \ --label org.label-schema.schema-version="1.0" \
@ -40,7 +49,6 @@ MOUNTFLAGS := -v $(CURDIR)/data:/data
NAMEFLAGS := --name docker_$(CNTNAME) --hostname $(CNTNAME) NAMEFLAGS := --name docker_$(CNTNAME) --hostname $(CNTNAME)
OTHERFLAGS := -v /etc/hosts:/etc/hosts:ro -v /etc/localtime:/etc/localtime:ro # -e TZ=Asia/Kolkata OTHERFLAGS := -v /etc/hosts:/etc/hosts:ro -v /etc/localtime:/etc/localtime:ro # -e TZ=Asia/Kolkata
PORTFLAGS := -p 8888:8888 PORTFLAGS := -p 8888:8888
PROXYFLAGS := --build-arg http_proxy=$(http_proxy) --build-arg https_proxy=$(https_proxy) --build-arg no_proxy=$(no_proxy)
RUNFLAGS := -c 512 -m 512m -e PGID=$(PGID) -e PUID=$(PUID) RUNFLAGS := -c 512 -m 512m -e PGID=$(PGID) -e PUID=$(PUID)
@ -53,7 +61,7 @@ all : run
build : build :
echo "Building for $(ARCH) from $(HOSTARCH)"; echo "Building for $(ARCH) from $(HOSTARCH)";
if [ "$(ARCH)" != "$(HOSTARCH)" ]; then make regbinfmt ; fi; if [ "$(ARCH)" != "$(HOSTARCH)" ]; then make regbinfmt ; fi;
docker build $(BUILDFLAGS) $(CACHEFLAGS) $(PROXYFLAGS) . docker build $(BUILDFLAGS) $(CACHEFLAGS) .
clean : clean :
docker images | awk '(NR>1) && ($$2!~/none/) {print $$1":"$$2}' | grep "$(USERNAME)/$(DOCKEREPO)" | xargs -n1 docker rmi docker images | awk '(NR>1) && ($$2!~/none/) {print $$1":"$$2}' | grep "$(USERNAME)/$(DOCKEREPO)" | xargs -n1 docker rmi
@ -65,7 +73,7 @@ pull :
docker pull $(IMAGETAG) docker pull $(IMAGETAG)
push : push :
docker push $(IMAGETAG); \ docker push $(IMAGETAG);
if [ "$(ARCH)" = "$(HOSTARCH)" ]; \ if [ "$(ARCH)" = "$(HOSTARCH)" ]; \
then \ then \
LATESTTAG=$$(echo $(IMAGETAG) | sed 's/:$(ARCH)/:latest/'); \ LATESTTAG=$$(echo $(IMAGETAG) | sed 's/:$(ARCH)/:latest/'); \
@ -76,16 +84,19 @@ push :
restart : restart :
docker ps -a | grep 'docker_$(CNTNAME)' -q && docker restart docker_$(CNTNAME) || echo "Service not running."; docker ps -a | grep 'docker_$(CNTNAME)' -q && docker restart docker_$(CNTNAME) || echo "Service not running.";
rm : stop rm :
docker rm -f docker_$(CNTNAME) docker rm -f docker_$(CNTNAME)
run : run :
docker run --rm -it $(NAMEFLAGS) $(RUNFLAGS) $(PORTFLAGS) $(MOUNTFLAGS) $(OTHERFLAGS) $(IMAGETAG) docker run --rm -it $(NAMEFLAGS) $(RUNFLAGS) $(PORTFLAGS) $(MOUNTFLAGS) $(OTHERFLAGS) $(IMAGETAG)
rshell : shell :
docker run --rm -it $(NAMEFLAGS) $(RUNFLAGS) $(PORTFLAGS) $(MOUNTFLAGS) $(OTHERFLAGS) --entrypoint $(SHCOMMAND) $(IMAGETAG)
rdebug :
docker exec -u root -it docker_$(CNTNAME) $(SHCOMMAND) docker exec -u root -it docker_$(CNTNAME) $(SHCOMMAND)
shell : debug :
docker exec -it docker_$(CNTNAME) $(SHCOMMAND) docker exec -it docker_$(CNTNAME) $(SHCOMMAND)
stop : stop :