mark-kubacki / apt-image Goto Github PK
View Code? Open in Web Editor NEW📦 minimal Ubuntu for containers, with curl and support for TLSv1.3
Home Page: https://source.cloud.google.com/distro/apt-image
License: Universal Permissive License v1.0
📦 minimal Ubuntu for containers, with curl and support for TLSv1.3
Home Page: https://source.cloud.google.com/distro/apt-image
License: Universal Permissive License v1.0
Just pulled the latest blitznote/debootstrap-amd64:16.04
and got this when I tried to run it:
$ docker run --rm -it blitznote/debootstrap-amd64:16.04
FATAL: kernel too old
My kernel version is:
$ uname -a
Linux vps64831 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
LE: From what I understand, this error is caused by a libc
compiled with --enable-kernel=version
, when the running kernel version is lower than the one specified at compile time.
blitznote/debase
on the Docker hub.ci-php
) publish an absolutely minimal image, without curl and decompressors.Hello,
I have a libcurl
issue which seems to be related to #10, still a bit different. It is in php-curl
from Ondřej's PHP PPA, and the error that I get is:
PHP Warning: PHP Startup: Unable to load dynamic library 'curl.so'
(tried: /usr/lib/php/20170718/curl.so (/usr/lib/php/20170718/curl.so: symbol curl_multi_add_handle, version CURL_OPENSSL_3 not defined in file libcurl.so.4 with link time reference),
/usr/lib/php/20170718/curl.so.so (/usr/lib/php/20170718/curl.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
A quick way to reproduce it:
$ docker run --rm -it blitznote/debootstrap-amd64:16.04 bash
$ apt-get update \
&& apt-get -y install dirmngr \
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-key 14AA40EC0831756756D7F66C4F4EA0AAE5267A6C \
&& echo 'deb http://ppa.launchpad.net/ondrej/php/ubuntu xenial main' >/etc/apt/sources.list.d/ondrej-ubuntu-php-xenial.list \
&& apt-get -y update && apt-get -y install php-cli php-curl \
&& php -v
which for me gives this output. [link to pastebin removed; Mark]
My Dockerfile:
FROM blitznote/debootstrap-amd64:16.04
RUN apt-get update \
&& apt-get install -y \
build-essential \
The Error:
The following packages have unmet dependencies:
build-essential : Depends: libc6-dev but it is not going to be installed or
libc-dev
Depends: g++ (>= 4:5.2) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Hi. Sorry to bother you again. This time it should be more valid question
FROM blitznote/debase:16.04
RUN apt-get update
RUN apt-get install libcommon-sense-perl liblinux-inotify2-perl iwatch
ENTRYPOINT iwatch -o ./ | xargs -n1 -I{} sh -c 'clear; printf "\033[3J" && /flow/flow'
I get this error
The following packages have unmet dependencies:
libcommon-sense-perl : Depends: perl (< 5.24.2~) but 5.26.1-13bn is to be installed
E: Unable to correct problems, you have held broken packages.
The command '/bin/bash -c apt-get install libcommon-sense-perl liblinux-inotify2-perl iwatch' returned a non-zero code: 100
This is issue with Ubuntu, rather than your image. Asking just in case you can advice something, otherwise feel free to close it.
It seems the image uses Ukrainian instead of English or something else, is there some setting to change this or planned to set to to English?
Hi. Thank you for this project.
I'm trying to build minimal image with flow (facebook/flow) based on your image. I get this error during the build
MiniUnz 1.01b, demo of zLib + Unz package written by Gilles Vollant
more info at http://www.winimage.com/zLibDll/unzip.html
Cannot open flow.zip or flow.zip.zip
The command '/bin/bash -c unzip flow.zip' returned a non-zero code: 1
Dockerfile
FROM blitznote/debase:16.04
ENV flowversion=0.70.0
RUN curl "https://github.com/facebook/flow/releases/download/v${flowversion}/flow-linux64-v${flowversion}.zip" --output flow.zip
RUN ls -la flow.zip
RUN unzip flow.zip ./flow flow
RUN mv flow/flow bin
WORKDIR /opt/flow
ENTRYPOINT ["/bin/flow"]
I'm not sure how to fix this. I will try to install another archive soft with apt-get
I really like what you did here to make Ubuntu images less bloated. Very good job! But in order for us to be able to deploy this we'd need to know how rootfs.tar.xz is built (for regulatory reasons we'd need to build images in house). I understand if you want to keep the secret, but I'm wondering if instead of having the rootfs.tar.xz checked into git, you'd have the script that builds it. Or maybe just shared how rootfs.tar.xf is built?
Cheers!
I'm using blitznote/debootstrap-amd64:17.04
. After installing a package that uses libcurl, I get the following error message every time my program uses libcurl:
/usr/lib/x86_64-linux-gnu/libcurl.so.4: no version information available (required by .... )
It works, but it first prints out that message every single time.
Do you think this is because you are compiling your libraries without version information?
Hello
Do you have any pointers on how to build a i386 image ?
Im currently using i386's which are somewhat larger.
Thanks
Just found this base image linked over from comments on the phusion baseimage but ran into some trouble. I went to install some things via apt but docker build .
fails with the following output:
$ docker build .
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM blitznote/debootstrap-amd64:16.04
---> 4890484dbe94
Step 2 : RUN apt-get -q update
---> Running in 80425c31cdb9
Reading package lists...
E: Method http has died unexpectedly!
E: Sub-process http received signal 4.
I took a brief look at the container fs contents and noticed that there is no /etc/apt directory or related files. I I read through the readme and there was no indication of a special way to run apt, so now I am stuck. I see other docker projects using this as a base image with no indication of special instructions to get apt working.
Would appreciate any clues
Edit:
I was mistaken about the missing APT files, I was looking at the wrong FS layer. I have started a container directly with this image and can confirm the files seem to be present, but apt-get update errors out as above.
Hello,
We've used blitznote/debase for some time. Recently we've started getting the following issue with apt-get update
is run in the Dockerfile (but also happens if I test it in a running container).
Err:4 https://s.blitznote.com/debs/ubuntu/amd64 all/ InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY A771821D873C0D73
Reading package lists... Done
W: GPG error: https://s.blitznote.com/debs/ubuntu/amd64 all/ InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY A771821D873C0D73
E: The repository 'https://s.blitznote.com/debs/ubuntu/amd64 all/ InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
I did wonder if we need to add a GPG key, but I cannot find one. I also investigated this method but debase doesn't have the requisite components to run apt-key
, it seems.
debootstrap works correctly, but I'd prefer to keep using the smaller image.
Do you have any suggestions?
Thanks,
Jim
First of all, thanks for a great project. It would be a great choice when one cannot use Alpine (likely because of muslc).
I tried switching one of my ubuntu:16.04 based images and found a problem. Eigen (and likely other math libs) does not compile with glibc version supplied. The same problem seems to have been discussed here. People blame a regression in glibc 2.26 (the version used on the latest releases).
I read the README and understand that latest version of glibc was chosen to benefit security but would it be possible to provide 2 versions, one being compatible with Ubuntu glibc? I assume this process is automated, no?
haswell
is mapped like this:
(libc6,x86-64, hwcap: 0x0004000000000000) => /usr/lib/x86_64-linux-gnu/haswell
… but as that implies popcnt
and rdrand
, albeit both are not as important as is avx
and avx2
and libraries for the libdir could be compiled without, I'd like to have avx2
its own libdir with libraries optimized for znver1
such as the AMD Epyc 7281 (note: has those instruction sets—do all znver1
fit into haswell
?).
Images published in Q1'2019 come with optimizations for Haswell and Skylake (avx512_1
), starting with encoders. Benchmarks indicate it's worthwhile to spend bytes here, but as compiling is actually faster on AMDs optimizations for it will likely be needed in late 2019.
See also:
I'm currently getting this error: W: Failed to fetch https://s.blitznote.com/debs/ubuntu/amd64/all/InRelease Failed to connect to s.blitznote.com port 443: Connection refused
.
Is there a way to workaround the SSE 4 support requirement because my processor supports SSE4a, but throws the error listed in the README when trying to do https.
I suspect this is related to the requirements for specific kernel versions and SSE4, but attempting to run this on Kubernetes launched using a vanilla GKE cluster fails:
kubectl run -i --tty container-test --image=blitznote/debootstrap-amd64:16.04 --restart=Never -- bash
FATAL: cpu lacks required instruction sets
While I'm not sure there's much to do here, I thought this more-common use case for an image like this would be surprising and interesting.
Thank you!
Hi,
Im am busy with my own docker image and I really like your base :)
But I get the following error when using apt on 16.04
W: Conflicting distribution: https://s.blitznote.com/debs/ubuntu/amd64 all/ InRelease
(expected all/ but got )
any fix?
I try to install some package in Dockerfile
FROM blitznote/debase:18.04
RUN apt update && \
apt install -y git gcc g++ make
However, there is an error during build
.
.
.
Setting up git (1:2.20.1-2bn) ...
Setting up gcc (4:8.2.0-1ubuntu1) ...
Setting up g++ (4:8.2.0-1ubuntu1) ...
update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode
Processing triggers for libc-bin (2.28-17bn) ...
FATAL: kernel too old
Aborted (core dumped)
FATAL: kernel too old
Aborted (core dumped)
dpkg: error processing package libc-bin (--configure):
installed libc-bin package post-installation script subprocess returned error exit status 134
Errors were encountered while processing:
libc-bin
E: Sub-process /usr/bin/dpkg returned an error code (1)
Could you please check ?
Hi,
I'm curious to know if you see some advantage to your docker-ubuntu-debootstrap VS https://github.com/phusion/baseimage-docker?
Thanks!
I think 76bca5b breaks C++11 std::thread
Given the following test program
#include <thread>
#include <iostream>
void run() {
std::cout << "thread" << std::endl;
}
int main(int argc, char** argv) {
std::thread thrd(run);
thrd.join();
return 0;
}
Compiled like so with the 18.04 image
# docker run -it --rm blitznote/debase:18.04
apt-get -q update
apt-get -y --no-install-recommends install \
g++
cat <<EOF > ./test.cc
#include <thread>
#include <iostream>
void run() {
std::cout << "thread" << std::endl;
}
int main(int argc, char** argv) {
std::thread thrd(run);
thrd.join();
return 0;
}
EOF
g++ -std=c++11 -o test -g3 -ggdb -pthread -Og ./test.cc
./test
You get a segmentation fault
Some programs will abort instead of seg-faulting e.g. bazel
11d59a839183 build $ bazel
Starting local Bazel server and connecting to it...
terminate called after throwing an instance of 'std::system_error'
what(): Enable multithreading to use std::thread: Operation not permitted
Aborted (core dumped)
11d59a839183 build $
The same binaries pulled off the docker image and run locally will run just fine and wont segfault.
A local build of the project before 76bca5b allows the thread program to run correctly.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.