8000 GitHub - dumiv2/curl-docker at new_world
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

dumiv2/curl-docker

 
 

Repository files navigation

Curl docker

WORKING ON - multiarch, labels, release CI/test/push to docker hub

This repository defines the official curl docker images which are available from the following registries:

To pull an image:

> {docker|podman} pull curlimages/curl:latest

To run an image:

> {docker|podman} run -it curlimages/curl:latest -V

Images are signed using sigstore. To verify an image install sigstore cosign utility and use cosign.pub public key:

> cosign verify --key cosign.pub ghcr.io/curl/curl-docker/curl:master

Note- you need to login to container registry first before pulling it, ex. {podman|docker} logon {registry}.

Contact

If you have problems, questions, ideas or suggestions, please raise an issue or contact curl-docker team or Jim Fuller directly.

Images

Official curl images

The official curl images are based on alpine and made available via docker hub (docker.io) et al.

  • curlimages/curl:latest - latest curl tag release with alpine base (multiarch)
  • curlimages/curl:#.#.# - specific curl tag release with alpine base (multiarch)

Base images are also provided.

  • curlimages/curl-base:latest - use to build your own images based on latest curl tag release with alpine base (multiarch)
  • curlimages/curl-base:#.#.# - use to build your own images based on specific curl tag release with alpine base (multiarch)

for example;

from curlimages/curl-base:latest
RUN apk add jq

Development curl images

The following images are available via github packages.

Master branch built hourly:

  • curl-dev:master - curl-dev master branch built hourly
  • curl-base:master - curl-base master branch built hourly
  • curl:master - curl master branch built hourly

A set of special case images built daily:

  • curl-exp:master - curl master branch built enabling expiremental features

Platform specific dev images built daily:

  • curl-dev-debian:master - debian based development environment
  • curl-dev-ubuntu:master - ubuntu based development environment
  • curl-dev-fedora:master - fedora based development environment

for example;

> {docker|podman} run -v /src/my-curl-src:/src/curl curlimages/curl-dev-alpine:latest /bin/sh
$> cd /src/curl
$> ./configure

Generating custom dev images

Create your own custom dev image using the build_ref_images Makefile target, passing in branch_or_tag and release_tag vars:

> make branch_or_ref=curl-master release_tag=master build_ref_images

Alternately you can directly invoke create_dev_image.sh which gives a bit more configuration options.

 > create_dev_image.sh {arch} {base image} {compiler} {deps} {build_opts} {branch_or_tag} {resultant_image_name}

where the input supplied defines the type of image built.

  • arch: linux/arm
  • base image: registry.hub.docker.com/library/alpine:latest
  • compiler: gcc
  • deps: ssh2 libssh2-dev libssh2-static autoconf automake build-base groff openssl curl-dev python3 python3-dev libtool curl stunnel perl nghttp2 brotli brotli-dev
  • build_opts: --enable-static --disable-ldap --enable-ipv6 --enable-unix-sockets --with-ssl --with-libssh2 --with-nghttp2=/usr
  • branch_or_tag: master
  • resultant_image_name: my_curl_dev_image

for example;

> ./create_dev_image.sh "linux/amd64" alpine:latest gcc \
      "libssh2 libssh2-dev libssh2-static autoconf automake build-base groff openss
69F7
l curl-dev python3 python3-dev libtool curl stunnel perl nghttp2 brotli brotli-dev" \
      " --enable-static --disable-ldap --enable-ipv6 --enable-unix-sockets --with-ssl --with-libssh2 --with-nghttp2=/usr" \
      master my_curl_dev_image

Dependencies

Either of the following are required to use images:

The following are required to build or release images:

Note- unfortunately buildah is not (yet) available for Apple/OSX.

Release management

TBA

Points of Interest

There is a hierarchy of images which are used to derive the final curl image.

  curl-dev image 
               |---(copy artifacts)---> 
                                      curl-base image 
                                                    |---(from)---> curl image

which is analagous to multistage builds.

  • curl-dev provides an 'instant' development environment
  • curl-base images only copy build artifacts from curl-dev
  • curl image inherits from curl-base adding user (curl_user) constraint

About

official docker image for curl

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Makefile 48.5%
  • Dockerfile 38.6%
  • Shell 12.9%
0