Sign inSign up

maurosoft1973/alpine-lftp

By maurosoft1973

•Updated 9 months ago

LFTP Docker Image with Multilanguage e Timezone support running on Alpine Linux

Image
Integration & delivery
0

100K+

maurosoft1973/alpine-lftp repository overview

⁠LFTP Docker image running on Alpine Linux

Docker Automated build Docker Pulls Docker Stars

Alpine Version

The Docker images (maurosoft1973/alpine-lftp)⁠ is based on the minimal Alpine Linux⁠ with LFTP Version v4.9.2-r7⁠.

⁠Alpine Version 3.21.0 (Released 2024-12-05)
⁠LFTP Version 4.9.2-r7 (Released 2024-08-15

)

⁠Description

The LFTP is a sophisticated file transfer program supporting a number of network protocols (ftp, http, sftp, fish, torrent). Like BASH, it has job control and uses the readline library for input. It has bookmarks, a built-in mirror command, and can transfer several files in parallel. It was designed with reliability in mind. LFTP is free software, distributed under the GNU GPL license. For more information (lftp)⁠

LFTP includes the following features (some may be missed in this list):

  • FTP and HTTP protocols support.
  • FTP (e.g. TIS FWTK) proxy support.
  • HTTP proxy support.
  • FTP over HTTP proxy support (hftp and CONNECT method).
  • HTTPS and FTPS protocols support using GNU TLS or OpenSSL library.
  • Automatic OPIE/SKEY support in FTP protocol.
  • FXP transfers support (between two FTP servers, bypassing client machine).
  • FTP listings support: unix-style, NT, EPLF, OS/2, AS400, MacWebStar, MLSD.
  • FTP implicit compression (MODE Z) support.
  • Automatic reconnect and retry of an operation on retriable errors or timeout.
  • IPv6 support in both FTP and HTTP.
  • FISH protocol support. It uses ssh with no special program on server side.
  • SFTP protocol v3-v6 support.
  • HTTP/1.1 keep-alive support.
  • HTTP basic and digest authentication.
  • Partial WebDAV support.
  • BitTorrent protocol support (including IPv6).
  • BitTorrent extensions: Fast, DHT, PEX, Multi-tracker, Metadata, magnet.
  • Experimental support for SRV DNS records.
  • SOCKS support (configure option).
  • Modification time preservation (if server can report it).
  • reget and reput support.
  • Built-in mirror and reverse mirror (mirror -R).
  • Transfer rate throttling for each connection, for each host and for all connections in total.
  • Limit for number of connections to the same site. Interruption of background transfer to do a foreground operation when the limit is reached.
  • Socket options tuning: buffer size and maximum segment size.
  • Job queueing.
  • Job execution at specified time.
  • Comprehensive scripting support.
  • URL recognition in most operations.
  • Readline library is used for input.
  • Context sensitive completion.
  • Bash-like prompt extensions.
  • Launching of local shell commands.
  • Suspend support.
  • Bookmarks.
  • Aliases.
  • Saving of last directory on each site. `cd -' to go there.
  • Copying of files (including mirror) between two servers over the client, automatic usage of FXP when possible to bypass the client.
  • Numerous settings which can be associated with a specific server or a group.
  • Paging of remote files using external program.
  • zcat and zmore support.
  • Help for commands.
  • Command history saved in a file.
  • Transfer status includes rate and ETA.
  • File listing cache.
  • Background jobs (bash-like).
  • Job output redirection to a file or to a program via pipe.
  • Conditional commands depending on exit status of previous one.
  • Loading of binary modules at run time (configure option).
  • pget to download a file using several connections. `pget' download can be continued as it saves a status file periodically.
  • mirror can download several files in parallel (--parallel option) and a single file with `pget' (--use-pget-n option).
  • Slots. Each slot is a separate session, switch using Meta-{1-9} or `slot' command. Refer to a slot site using pseudo URL slot:name.

⁠Architectures

  • :aarch64 - 64 bit ARM
  • :armhf - 32 bit ARM v6
  • :armv7 - 32 bit ARM v7
  • :ppc64le - 64 bit PowerPC
  • :x86 - 32 bit Intel/AMD
  • :x86_64 - 64 bit Intel/AMD (x86_64/amd64)

⁠Tags

  • :latest latest branch based (Automatic Architecture Selection)
  • :aarch64 latest 64 bit ARM
  • :armhf latest 32 bit ARM v6
  • :armv7 latest 32 bit ARM v7
  • :ppc64le latest 64 bit PowerPC
  • :x86 latest 32 bit Intel/AMD
  • :x86_64 latest 64 bit Intel/AMD
  • :test test branch based (Automatic Architecture Selection)
  • :test-aarch64 test 64 bit ARM
  • :test-armhf test 32 bit ARM v6
  • :test-armv7 test 32 bit ARM v7
  • :test-ppc64le test 64 bit PowerPC
  • :test-x86 test 32 bit Intel/AMD
  • :test-x86_64 test 64 bit Intel/AMD
  • :3.21.0 3.21.0 branch based (Automatic Architecture Selection)
  • :3.21.0-aarch64 3.21.0 64 bit ARM
  • :3.21.0-armhf 3.21.0 32 bit ARM v6
  • :3.21.0-armv7 3.21.0 32 bit ARM v7
  • :3.21.0-ppc64le 3.21.0 64 bit PowerPC
  • :3.21.0-x86 3.21.0 32 bit Intel/AMD
  • :3.21.0-x86_64 3.21.0 64 bit Intel/AMD
  • :3.21.0-4.9.2-r7 3.21.0-4.9.2-r7 branch based (Automatic Architecture Selection)
  • :3.21.0-4.9.2-r7-aarch64 3.21.0 64 bit ARM
  • :3.21.0-4.9.2-r7-armhf 3.21.0 32 bit ARM v6
  • :3.21.0-4.9.2-r7-armv7 3.21.0 32 bit ARM v7
  • :3.21.0-4.9.2-r7-ppc64le 3.21.0 64 bit PowerPC
  • :3.21.0-4.9.2-r7-x86 3.21.0 32 bit Intel/AMD
  • :3.21.0-4.9.2-r7-x86_64 3.21.0 64 bit Intel/AMD

⁠Layers & Sizes

VersionSize
VersionMicroBadger Size (tag)
VersionMicroBadger Size (tag)
VersionMicroBadger Size (tag)
VersionMicroBadger Size (tag)
VersionMicroBadger Size (tag)

⁠Environment Variables:

⁠Main LFTP parameters:
  • LC_ALL: default locale (en_GB.UTF-8)
  • TIMEZONE: default timezone (Europe/Brussels)
  • SHELL_TERMINAL: default shell (bin/sh)

⁠Sample Use with gitlab pipeline

The script below allows you to synchronize files on a remote server, excluding hidden files and folders (-X .* -X .*/) The script git_restore_last_modified_time sets the last modified date on the repository files before syncronized.

stages:
    - deploy

deploy-develop:
    stage: deploy
    image: maurosoft1973/alpine-lftp
    variables:
        FTP_SERVER: 'ftp server'
        FTP_PORT: 'ftp port'
        FTP_USERNAME: 'ftp username'
        FTP_PASSWORD: 'ftp password'
        FTP_LOCAL_FOLDER: 'local folder'
        FTP_REMOTE_FOLDER: 'remote folder'
    only:
        - develop
    script:
        - git_restore_last_modified_time
        - lftp -e "set ssl:verify-certificate no; set ftp:use-mdtm-overloaded true; open $FTP_SERVER; user $FTP_USERNAME $FTP_PASSWORD; mirror -X .* -X .*/ --reverse --verbose --delete $FTP_LOCAL_FOLDER $FTP_REMOTE_FOLDER; bye"

deploy-prod:
    stage: deploy
    image: maurosoft1973/alpine-lftp
    variables:
        FTP_SERVER: 'ftp server'
        FTP_PORT: 'ftp port'
        FTP_USERNAME: 'ftp username'
        FTP_PASSWORD: 'ftp password'
        FTP_LOCAL_FOLDER: 'local folder'
        FTP_REMOTE_FOLDER: 'remote folder'
    only:
        - prod
    script:
        - git_restore_last_modified_time
        - lftp -e "set ssl:verify-certificate no; set sftp:auto-confirm yes; open sftp://$FTP_SERVER -p $FTP_PORT -u $FTP_USERNAME,$FTP_PASSWORD; mirror -X .* -X .*/ --reverse --verbose --delete $FTP_LOCAL_FOLDER $FTP_REMOTE_FOLDER; bye"

⁠Last Update 15.01.2026 04:10:55

Tag summary

Content type

Image

Digest

sha256:37fb833f9…

Size

13 MB

Last updated

9 months ago

docker pull maurosoft1973/alpine-lftp:4.9.2-r6-3.19.4