iron-io / dockers Goto Github PK
View Code? Open in Web Editor NEWUber tiny Docker images for all the things.
Home Page: http://www.iron.io
License: MIT License
Uber tiny Docker images for all the things.
Home Page: http://www.iron.io
License: MIT License
dep
dependency manager for Go doesn't work on containers based on iron/go:dev
Dockerfile
FROM iron/go:dev
RUN apk update; apk add git
RUN go get -u github.com/golang/dep/cmd/dep
ENTRYPOINT /bin/sh
In container (bash):
$ dep
dep: command not found
P.S - everything works with the same steps using golang:1.9.2-alpine
image
I got the following warning:
docker.io/iron/base: this image was pulled from a legacy registry. Important: This registry version will not be supported in future versions of docker.
Hi,
I've been trying to use the node image for a project of mine and set up a workflow where iron/node:5-dev
is used to run npm install
before building the images based on iron/node:5
. When doing this with a project that depends on native node modules I get this error when trying to use these images:
Error: Dynamic loading not supported
at Error (native)
at Object.Module._extensions..node (module.js:440:18)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)
at require (internal/module.js:16:19)
at bindings (/app/node_modules/bindings/bindings.js:76:44)
at Object.<anonymous> (/app/node_modules/contextify/lib/contextify.js:1:96)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
They do work perfectly fine when running using a dev image. Apparently this is because the non-dev images are build with --fully-static
. I'm not sure if you can get small images without that option, but you might want to add a note to your documentation stating that this problem exists.
https://github.com/iron-io/dockers/blob/master/node/Dockerfile
Not as a separate RUN layer.
Is there something special required to get SSL certificates to work well in the java 1.8 base image?
My image was previously running on Oracle Hotspot JRE 8 in an Ubuntu based image and working ok. Since switching my Dockerfile to FROM iron/java:1.8
I have trouble connecting to HTTPS URL's within my application.
The precise error is:
java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty; nested exception is javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
I initially suspected that perhaps some default certificates were missing, so I attempted the following:
RUN apk --update upgrade && \
apk add ca-certificates && \
update-ca-certificates && \
rm -rf /var/cache/apk/*
However I still have the same problem.
I have played around inside the image and I did discover that the symlink /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/cacerts
pointed to a file /etc/ssl/certs/java/cacerts
which did not exist.
In order to attempt to remedy this I also executed:
RUN ln -s /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/java/cacerts
However the error is still the same.
What am I missing? Any help much appreciated.
Thanks.
I'm a bit confused where the openrc (rc-status, etc.) comes from. The 'latest' alpine doesn't have it but I don't see it in the Dockerfile tree here in iron-io. Strange.
In any event, I build a Docker file off iron/scala:
FROM iron/scala
USER root
ENTRYPOINT ["/sbin/init","/bin/bash"]
Eventually I'm trying to start OpenRC's init to launch some processes I want running. This is the output I see (stock...I haven't added my processes yet to /etc/init.d):
docker run -it foo/bar
OpenRC 0.15.1.88bc7e0 is starting up Linux 4.0.9-boot2docker (x86_64)
@freeman1988 please be sure tag all images with the version: https://hub.docker.com/r/iron/python/tags/
Hello,
Would be marvelous to get a Perl minimal image :).
Cheers,
C.
When I try to run the following command, I'm getting an error from docker saying it can't start the container, with additional "no such file or directory" error that I think is coming from the iron/cli image itself.
docker run --rm iron/cli --version
Windows 10
Docker 1.9.1
Oracle VirtualBox 5.0.11r104393
iron/cli docker image: (latest) 2b76d773706a
My docker VM was created using Kitematic and looks like it has a minimal set of commands. I'm not that familiar with the linux version, but it says "MingGW64"
.
I noticed in Kitematic the PATH has references to sbin
which doesn't exist:
I'm assuming the image is referencing a command that either isn't available in my MinGW64-version of linux or is in another location? Is there a workaround, like maybe modifying the PATH environment variable?
sudo curl -sSL https://cli.iron.io/install | sh
...
Response:
sh: line 66: 95380 Segmentation fault: 11 /usr/local/bin/iron --version
MacOS Monterey, v12.0.1, M1, 2020. Docker was fully updated up until just today. Haven't updated Docker.
Unfortunately there are quite a few packages on npm that rely on github dependencies; on of which is this super awesome iron.io client. Those packages can obviously only be used when git is installed.
Would you consider adding git to iron/node:dev
or is that against your "as slim as possible" policy?
I am looking for tiniest Docker image that can run Linux binary with the latest glibc
version.
Any hints on which image I can use? Should I make, install glibc
on base Alpine image?
when i was running my application, i haved a error:
/home/node_modules/nodemailer/lib/mailer/index.js:31
compile: [(...args) => this._convertDataImages(...args)],
^^^
SyntaxError: Unexpected token ...
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:387:25)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)
at require (internal/module.js:16:19)
at Object.<anonymous> (/home/node_modules/nodemailer/lib/nodemailer.js:3:16)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
can't you help me?
Thanks!
When I executed this command.
docker run --rm -v "$PWD":/worker -w /worker iron/ruby:dev bundle install --standalone --clean
I got that code.
`Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/usr/bin/ruby -r ./siteconf20160511-1-1hecfl5.rb extconf.rb
checking for ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
checking for rb_thread_blocking_region()... no
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/bin/$(RUBY_BASE_NAME)
--with-mysql-dir
--without-mysql-dir
--with-mysql-include
--without-mysql-include=${mysql-dir}/include
--with-mysql-lib
--without-mysql-lib=${mysql-dir}/lib
--with-mysql-config
--without-mysql-config
--with-mysql-dir
--without-mysql-dir
--with-mysql-include
--without-mysql-include=${mysql-dir}/include
--with-mysql-lib
--without-mysql-lib=${mysql-dir}/lib
--with-mysqlclientlib
--without-mysqlclientlib
extconf failed, exit code 1
Gem files will remain installed in /worker/bundle/ruby/2.2.0/gems/mysql2-0.4.4 for inspection.
Results logged to /worker/bundle/ruby/2.2.0/extensions/x86_64-linux/2.2.0/mysql2-0.4.4/gem_make.out
An error occurred while installing mysql2 (0.4.4), and Bundler cannot continue.
Make sure that gem install mysql2 -v '0.4.4'
succeeds before bundling.
`
OSX:
Python 2.7.10 (default, Aug 10 2015, 10:53:07)
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import datetime
>>> n = datetime.datetime.now()
>>> n.strftime('%I')
'04'
>>> n.strftime('%-I')
'4'
iron/python:2
Python 2.7.11 (default, Jan 23 2016, 12:34:14)
[GCC 5.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import datetime
>>> n = datetime.datetime.now()
>>> n.strftime('%I')
'04'
>>> n.strftime('%-I')
''
The last line is an empty string (and no error) on Alpine Linux. This bug also affects the regular APK version of Python on Alpine Linux. Is there somewhere else/better that I should report this bug? I would love to use Alpine Linux, but we actually use this %-I
in a strftime
call in our app, so we can't.
curl isn't avaiable on latest docker version, is this being removed or deprecated?
I get this:
Warning: the running version of Bundler is older than the version that created the lockfile. We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
Getting this one for java 8 image when I access some https url from my java code.
Any ideas?
Hi,
I have hit exactly this problem building images for c++ development. Would you guys consider images with clang/gcc and boost?
Keep up the great work!
Marco
Installing from Source
Hey thx for this.
any timeline on a swift container?
With the latest 5MB iron/go image. The go binary is not found.
Say, something must be off in the build process. The Dockerfile in dockers/go/go-1.5/Dockerfile seems just fine, but if I docker pull iron/go:latest
, go isn't installed in the image. One clue is https://hub.docker.com/r/iron/go/tags/ shows the image is only 4mb where the 1.4 image is 64mb.
Something's hinky.
a node v5 version would be great. It includes NPM 3 which has some awesome improvements.
It's pretty old now: https://github.com/iron-io/dockers/tree/master/node
And maybe some of the other images in there as well. Perhaps make a top level rebuild all images script that builds and pushes everything.
This gem is a transitive dependency and appears to depend on some kernel modules according to the readme The actual error is
linux_inet_diag.c:53:23: fatal error: asm/types.h: No such file or directory
bundle install
build output:
Installing raindrops 0.15.0 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/usr/bin/ruby -r ./siteconf20160418-7-a17kji.rb extconf.rb --use-system-libraries
checking for mmap() in sys/mman.h... yes
checking for munmap() in sys/mman.h... yes
checking for mremap() in sys/mman.h... yes
checking for linux/tcp.h... no
checking for getpagesize() in unistd.h... yes
checking for rb_thread_blocking_region()... no
checking for rb_thread_io_blocking_region()... yes
checking for GCC 4+ atomic builtins... yes
creating Makefile
make "DESTDIR=" clean
make "DESTDIR="
compiling linux_inet_diag.c
linux_inet_diag.c:53:23: fatal error: asm/types.h: No such file or directory
compilation terminated.
Makefile:237: recipe for target 'linux_inet_diag.o' failed
make: *** [linux_inet_diag.o] Error 1
make failed, exit code 2
If I try to modprobe inet_diag
I get
modprobe: can't change directory to '/lib/modules': No such file or directory
Any possibility of getting a Haskell image?
Thanks! Awesome work you're doing.
I have one question related to building micro size docker images ?
In the below buider.rb file (vtag function) why you are creating three tags for a image VERSION_ID say 3.5.0 ?
https://github.com/iron-io/dockers/blob/master/utils/builder.rb
Warm Regards,
Ankit
It would be great to have oracle jre/jdk images. Is it planned ?
The following changes for the ruy container provide a 8.00% improvement in size:
FROM iron/base
RUN apk update && apk upgrade
RUN apk add libxml2 libxslt libevent libffi glib ncurses readline openssl yaml zlib curl
RUN apk add mariadb-libs libpq
RUN apk add ruby ruby-io-console
# Clean APK cache
RUN rm -rf /var/cache/apk/*
Becomes:
FROM alpine
RUN apk update && apk upgrade \
&& apk add ca-certificates libxml2 libxslt libevent libffi glib ncurses readline \
openssl yaml zlib curl mariadb-libs libpq ruby ruby-io-console \
&& rm -rf /var/cache/apk/*
The output of the original image virtual size is 40.07 MB
while the inlined version is 37.02 MB
, in-keeping with the README's provide the smallest possible images
, this is an improvement :)
This is because the layers are overlaid on each previous layer, you're currently leaving the packages in the apt
RUN line layers and then saying they don't exist in the last layer, so the data is still pulled down.
In-lining the commands leaves you with only one additional layer on the base image with all of the cleanup occurring in it :).
Hi Team,
I am trying to use the iron/node image on the arm64 platform but it seems it is not available for arm64.
I have successfully built the image using the command docker build -t image_name . on the arm64 platform without making any changes in the Dockerfile.
I have used Travis-CI to build and push the image for both the platforms.
Commit Link - odidev@f886f68
Travis-CI link - https://travis-ci.com/github/odidev/dockers/builds/231921421
Docker Hub Link - https://hub.docker.com/repository/registry-1.docker.io/odidev/node_image/tags?page=1&ordering=last_updated
Do you have any plans on releasing arm64 images?
It will be very helpful if an arm64 image is available. If interested, I will raise a PR.
I don't see node versions newer than 5.x- which is a pity.
It was a cool nice node image...
Dockerfile ==================================
FROM iron/python:2
RUN apk add --update py-pip
COPY / /usr/app
WORKDIR /usr/app
RUN pip install -r requirements.txt
RUN python setup.py install
hello-python.py ======================
import web
import os
urls = (
r'/hello', 'hello',
)
app = web.application(urls, globals())
class hello:
def GET(self, name):
return 'Hello ' + os.environ.get('WORLD', 'world') + "!\n"
`Fetching: json-1.8.3.gem (100%)
Building native extensions. This could take a while...
ERROR: Error installing json:
ERROR: Failed to build gem native extension.
/usr/bin/ruby -r ./siteconf20160623-7-1yb7ssr.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h
extconf failed, exit code 1
Gem files will remain installed in /usr/lib/ruby/gems/2.2.0/gems/json-1.8.3 for inspection.
Results logged to /usr/lib/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0/json-1.8.3/gem_make.out`
How can we fix this?
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.