Se hace mediante docker files.
Los docker files son scripts propios del docker engine. Aquí un ejemplo explicado:
FROM progrium/busybox ==> Se indica el nombre de la imagen que se va a utilizar como base
MAINTAINER Name surname <author@mail.com> ==> Autor
RUN opkg-install wget bash git libstdcpp && \ ==> Conjunto de instrucciones que hay que ejecutar para automatizar la creación de la nueva imagen. Como hay varias instrucciones se separan con ampersands y como están en diferentes líneas, se separan con una contrabarra. Se puede hacer ejecutando varios comandos RUN en lugar de concatenarlo así, pero en ese caso, para cada uno de los comandos RUN creará un nuevo layer
wget https://nodejs.org/dist/v4.1.0/node-v4.1.0-linux-x64.tar.gz --no-check-certificate && \
gunzip -d node-v4.1.0-linux-x64.tar.gz && \
tar -xf node-v4.1.0-linux-x64.tar && \
rm -f /lib/libpthread.so.0 && \
ln -s /lib/libpthread-2.18.so /lib/libpthread.so.0 && \
rm node-v4.1.0-linux-x64.tar && \
mv /node-v4.1.0-linux-x64 node
ENV PATH=$PATH:/node/bin ==> Añadiría esa variable de entorno
Por tanto, los pasos serían:
- En el host, crearíamos el fichero Dockerfile
- Pegaríamos el contenido del fichero:
FROM progrium/busybox
MAINTAINER Name surname <author@mail.com>
RUN opkg-install wget bash git libstdcpp && \
wget https://nodejs.org/dist/v4.1.0/node-v4.1.0-linux-x64.tar.gz --no-check-certificate && \
gunzip -d node-v4.1.0-linux-x64.tar.gz && \
tar -xf node-v4.1.0-linux-x64.tar && \
rm -f /lib/libpthread.so.0 && \
ln -s /lib/libpthread-2.18.so /lib/libpthread.so.0 && \
rm node-v4.1.0-linux-x64.tar && \
mv /node-v4.1.0-linux-x64 node
ENV PATH=$PATH:/node/bin
- Guardamos el fichero
- Construimos la imagen con las instrucciones:
- Ejecutamos docker build -t capside/nodejs:v4.1.0