rocketizer
Painless Dockerfile transformation to Rocket containers.
Creates ACI Rocket containers using as source a Dockerfile, the ENTRYPOINT
, CMD
, VOLUME
, ENV
and EXPOSE
expressions are used to create the manifest and the paths from COPY
and ADD
are compress into the ACI container in the rootfs
directory. Other expressions are ignored.
Based on the hype of this days around containers
has been carry to me build this small tool. Maybe is now is useless but maybe someday or in some point could become usefull for someone.
Warning: Since the FROM
expresion is ignored, the generated containers are useless when the binaries are not copy with a ADD
or COPY
expressions and statically compiled
Installation
wget https://github.com/mcuadros/rocketizer/releases/download/v0.1.1/rocketizer_v0.1.1_linux_amd64.tar.gz
tar -xvzf rocketizer_v0.1.1_linux_amd64.tar.gz
cp rocketizer_v0.1.1_linux_amd64/rocketizer /usr/local/bin/
browse the releases
section to see other archs
Usage
Based on the following Dockerfile:
FROM golang
# Copy outyet command inside the container.
ADD outyet /go/bin/outyet
# Run the outyet command by default when the container starts.
ENTRYPOINT /go/bin/outyet
# Document that the service listens on port 8080.
EXPOSE 8080
The following command generate a ACI container from the previous Dockfile:
./rocketizer convert --name outyet --version 1.0.0
Building outyet<1.0.0>
Parsing Dockerfile Dockerfile
Compressing files... OK
New ACI created outyet-v1.0.0-linux-amd64.aci
Create a outyet-v1.0.0-linux-amd64.aci
container with the following contents:
rootfs/go/bin/outyet
app
The app
manifest contains:
{
"acVersion": "1.0.0",
"acKind": "AppManifest",
"name": "outyet",
"version": "1.0.0",
"os": "linux",
"arch": "amd64",
"exec": [
"\/go\/bin\/outyet"
],
"eventHandlers": null,
"user": "",
"group": "",
"environment": null,
"mountPoints": null,
"ports": [
{
"name": "8080",
"protocol": "tcp",
"port": 8080,
"socketActivated": false
}
],
"isolators": null,
"annotations": null
}
License
MIT, see LICENSE