mirror of
https://github.com/vanhauser-thc/thc-hydra.git
synced 2025-08-14 10:37:27 -07:00
Docker env implemented
This commit is contained in:
parent
b9a985fb56
commit
2dc4656d72
3 changed files with 150 additions and 0 deletions
45
.github/workflows/release.yml
vendored
Normal file
45
.github/workflows/release.yml
vendored
Normal file
|
@ -0,0 +1,45 @@
|
|||
name: release
|
||||
|
||||
on:
|
||||
release: # Docs: <https://help.github.com/en/articles/events-that-trigger-workflows#release-event-release>
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
docker-image:
|
||||
name: Build the docker image
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- uses: docker/setup-qemu-action@v2
|
||||
|
||||
- uses: docker/setup-buildx-action@v2
|
||||
|
||||
# uncomment for publishing on hub.docker.com (don't forget to fillup the repository secrets)
|
||||
#- uses: docker/login-action@v2
|
||||
# with:
|
||||
# username: ${{ secrets.DOCKER_LOGIN }}
|
||||
# password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- uses: gacts/github-slug@v1 # Action page: <https://github.com/gacts/github-slug>
|
||||
id: slug
|
||||
|
||||
- uses: docker/build-push-action@v3 # Action page: <https://github.com/docker/build-push-action>
|
||||
with:
|
||||
context: .
|
||||
file: Dockerfile
|
||||
push: true
|
||||
platforms: linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7
|
||||
build-args: HYDRA_VERSION="${{ steps.slug.outputs.version-semantic }}"
|
||||
tags: |
|
||||
ghcr.io/${{ github.actor }}/hydra:${{ steps.slug.outputs.version-semantic }}
|
||||
# append the following line to the list above for publishing on hub.docker.com
|
||||
# (and don't forget to change on a real repo/user name)
|
||||
# vanhauser-thc/thc-hydra:${{ steps.slug.outputs.version-semantic }}
|
||||
|
33
.github/workflows/tests.yml
vendored
Normal file
33
.github/workflows/tests.yml
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
name: tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master, main]
|
||||
tags-ignore: ['**']
|
||||
paths-ignore: [README, TODO, PROBLEMS]
|
||||
pull_request:
|
||||
paths-ignore: [README, TODO, PROBLEMS]
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs: # Docs: <https://git.io/JvxXE>
|
||||
docker-build:
|
||||
name: Build the docker image
|
||||
runs-on: ubuntu-20.04
|
||||
timeout-minutes: 25
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- uses: docker/setup-qemu-action@v2
|
||||
|
||||
- uses: docker/setup-buildx-action@v2
|
||||
|
||||
- uses: docker/build-push-action@v3 # Action page: <https://github.com/docker/build-push-action>
|
||||
with:
|
||||
context: .
|
||||
file: Dockerfile
|
||||
platforms: linux/amd64,linux/arm/v7
|
||||
push: false
|
||||
tags: hydra:ci
|
72
Dockerfile
Normal file
72
Dockerfile
Normal file
|
@ -0,0 +1,72 @@
|
|||
FROM debian:buster-slim
|
||||
|
||||
ARG HYDRA_VERSION="unknown"
|
||||
|
||||
LABEL \
|
||||
org.opencontainers.image.url="https://github.com/vanhauser-thc/thc-hydra" \
|
||||
org.opencontainers.image.source="https://github.com/vanhauser-thc/thc-hydra" \
|
||||
org.opencontainers.image.version="$HYDRA_VERSION" \
|
||||
org.opencontainers.image.vendor="vanhauser-thc" \
|
||||
org.opencontainers.image.title="hydra" \
|
||||
org.opencontainers.image.licenses="GNU AFFERO GENERAL PUBLIC LICENSE"
|
||||
|
||||
COPY . /src
|
||||
|
||||
RUN set -x \
|
||||
&& apt-get update \
|
||||
&& apt-get -y install \
|
||||
#libmysqlclient-dev \
|
||||
default-libmysqlclient-dev \
|
||||
libgpg-error-dev \
|
||||
#libmemcached-dev \
|
||||
#libgcrypt11-dev \
|
||||
libgcrypt-dev \
|
||||
#libgcrypt20-dev \
|
||||
#libgtk2.0-dev \
|
||||
libpcre3-dev \
|
||||
#firebird-dev \
|
||||
libidn11-dev \
|
||||
libssh-dev \
|
||||
#libsvn-dev \
|
||||
libssl-dev \
|
||||
#libpq-dev \
|
||||
make \
|
||||
curl \
|
||||
gcc \
|
||||
1>/dev/null \
|
||||
# The next line fixes the curl "SSL certificate problem: unable to get local issuer certificate" for linux/arm
|
||||
&& c_rehash \
|
||||
# Get hydra sources and compile
|
||||
&& cd /src \
|
||||
&& ./configure 1>/dev/null \
|
||||
&& make 1>/dev/null \
|
||||
&& make install \
|
||||
# Make clean
|
||||
&& apt-get purge -y make gcc libgpg-error-dev libgcrypt-dev \
|
||||
&& apt-get autoremove -y \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
# Verify hydra installation
|
||||
&& hydra -h || error_code=$? \
|
||||
&& if [ ! "${error_code}" -eq 255 ]; then echo "Wrong exit code for 'hydra help' command"; exit 1; fi \
|
||||
# Unprivileged user creation
|
||||
&& echo 'hydra:x:10001:10001::/tmp:/sbin/nologin' > /etc/passwd \
|
||||
&& echo 'hydra:x:10001:' > /etc/group
|
||||
|
||||
ARG INCLUDE_SECLISTS="true"
|
||||
|
||||
RUN set -x \
|
||||
&& if [ "${INCLUDE_SECLISTS}" = "true" ]; then \
|
||||
mkdir /tmp/seclists \
|
||||
&& curl -SL "https://api.github.com/repos/danielmiessler/SecLists/tarball" -o /tmp/seclists/src.tar.gz \
|
||||
&& tar xzf /tmp/seclists/src.tar.gz -C /tmp/seclists \
|
||||
&& mv /tmp/seclists/*SecLists*/Passwords /opt/passwords \
|
||||
&& mv /tmp/seclists/*SecLists*/Usernames /opt/usernames \
|
||||
&& chmod -R u+r /opt/passwords /opt/usernames \
|
||||
&& rm -Rf /tmp/seclists \
|
||||
&& ls -la /opt/passwords /opt/usernames \
|
||||
;fi
|
||||
|
||||
# Use an unprivileged user
|
||||
USER 10001:10001
|
||||
|
||||
ENTRYPOINT ["hydra"]
|
Loading…
Add table
Add a link
Reference in a new issue