Para esto se ha ocupado una pc con Windows 7 PRO x64 con virtualizacion activada desde la BIOS (es obligatorio), el mismo método ya ha sido probado igualmente en Windows 10 y seguramente funcione en Windows 11. Porque hacerlo en Windows 7? R: porque Docker Desktop para Windows utiliza Hyper V y Windows 7 utiliza solamente VirtualBox. 😃
El repositorio del Docker de Boli:
https://github.com/Visionario/DockerBoli.git
Se ha utilizado Docker Toolbox version 19.03.12 (que instala automáticamente todo lo necesario: VirtualBox, Git for Windows y Docker compose) desde aqui:
https://github.com/docker-archive/toolbox/releases
Puede ver un video explicativo de ayuda 👉 Video de instalación Docker Toolbox en Windows
Windows ofrece la oportunidad de modificar archivos y carpetas utilizadas por Docker sin necesidad de utilizar la linea de comandos 🙂
PREPARACION:
La ruta de los archivos para Docker Toolbox en Windows luego de la instalacion por defecto es:
c:\Archivos de programa\Docker toolbox\
- Desde Windows o por linea de comandos se crea una carpeta llamada "boli" con la intención de tener todo separado en la siguiente ruta:
c:\Archivos de programa\Docker toolbox\boli\
- También se crea una carpeta que será compartida entre Windows y la Máquina Virtual (VM), la cual se debe agregar desde el administrador de configuración de VirtualBox, seleccionando la máquina creada "default" > configuración > carpetas compartidas. VirtualBox utiliza por defecto la ruta
c/Users
allí se creará la carpeta mydocker y debe quedar así:
C:\Users\mydocker\
A esa carpeta creada, se le pueden otorgar permisos de control total o como le parezca más seguro, se puede hacer desde Windows > propiedades > seguridad
- Desde la terminal Docker Toolbox se clona el repositorio que genera la carpeta DockerBoli con el siguiente comando:
git clone https://github.com/Visionario/DockerBoli.git
- Desde Windows o por linea de comandos se copian los archivos Dockerfile y daemon_boli_start.sh del git descargado que se encuentra en la ruta por defecto:
c:\Archivos de programa\Docker toolbox\DockerBoli\
a la carpeta creada:
c:\Archivos de programa\Docker toolbox\boli\
Con un editor de texto se debe comentar (#) la linea 2 del archivo daemon_boli_start.sh
Desde Windows o por linea de comandos se debe crear la carpeta "bolidata" en la ruta c:\Archivos de programa\Docker toolbox\boli\ quedando así:
c:\Archivos de programa\Docker toolbox\boli\bolidata\
Se Copia el archivo Generic_Bolivarcoin.conf que se encuentra en la carpeta c:\Archivos de programa\Docker toolbox\DockerBoli\ a la carpeta \bolidata\ y se le cambia el nombre a Bolivarcoin.conf
Se cambia los valores del archivo Bolivarcoin.conf automaticamente desde la terminal Docker Toolbox con los siguientes comandos, desde de la ruta \Docker toolbox\boli:
sed -i "s/rpcuser=CHANGE_THIS/rpcuser=$(openssl rand -hex 16)/g" Bolivarcoin.conf
sed -i "s/rpcpassword=CHANGE_THIS/rpcpassword=$(openssl rand -hex 16)/g" Bolivarcoin.conf
CONSTRUCCIÓN/BUILD:
Se construye la imagen boli usando parámetros predeterminados, desde la terminal de Docker Toolbox, dentro de la ruta c:\Archivos de programa\Docker toolbox\boli\ con el siguiente comando:
docker build . --build-arg UID=$(id -u) --build-arg GID=$(id -g) -t bolicoin-core-alpine:v2.0.0.2
Dependiendo de la capacidad de la máquina se toma algo de tiempo y finaliza indicando:
successfully built (image ID)
que en mi caso fué 7a6c22883bf4
successfully tagged bolicoin-core-alpine:v2.0.0.2
- Para visualizar la imagen construida puede escribir el comando:
docker images
En REPOSITORY se observa la imagen bolicoin-core-alpine con TAG v2.0.0.2
EJECUCIÓN/RUN
Desde la terminal de docker Toolbox se ejecuta el siguiente comando:
docker run -dit --name boli -p 3893:3893 -v "/c/users/mydocker:/opt/boli/bolidata" bolicoin-core-alpine:v2.0.0.2
Desde la terminal de docker Toolbox se ejecuta el siguiente comando, para comprobar que el contenedor está corriendo:
docker ps
EUREKA! 😍
Para salir del contenedor debe ejecutar el siguiente comando en la terminal de Docker Toolbox:
docker rm $(docker ps -aq) -f
ó docker rm -f boli
Si gusta entrar al contenedor en ejecución (usuario 'boli') ejecutar en la terminal de Docker Toolbox:
docker exec -it boli /bin/sh
Ejecutar comandos (user 'boli')
docker exec boli bolivarcoin-cli getinfo
Entrar al contenedor con credenciales root
docker exec -it -u 0 boli /bin/sh
Enjoy! 😊
Nota 1:
Durante la construcción, para las Ip de Venezuela ocurre el error 403 forbidden cuando está haciendo la descarga del motor de Oracle.com pensé que era temporal, sin embargo, lo siguió haciendo y casi desintalo todo y vuelvo a empezar de "0", sino es por que @Visionario indica en telegram que existe el error 😵 (me has salvado) ahora voy a probar con un VPN a ver como sale.
Nota 2:
Se instaló un VPN en Windows 7 para poder pasar el error de Oracle.com, también se configuró en VirtualBox en el menu: Archivo > Preferencias > Proxy > "Autodetectar preferencias del proxy del anfitrion"
@Visionario me indica hacer un pequeño cambio para evitar el uso del VPN:
Antes de hacer el "build"...
En linea 61 que dice:
RUN wget https://download.oracle.com/berkeley-db/${BERKELEYDB_VERSION}.tar.gz
Cambialo por:
RUN wget https://labs.bolivarcoin.tech:2908/${BERKELEYDB_VERSION}.tar.gz
En linea 169 que dice:
COPY daemon_boli_start.sh /opt/boli/daemon_boli_start.sh
Cambialo por:
COPY ./daemon_boli_start.sh /opt/boli/daemon_boli_start.sh
Nota 3:
El error:
Copy failed en el Step 52/60 Copy daemon_boli_start.sh /opt/boli/daemon_boli_start.sh
Se resuelve como se ha indicado arriba, copiando en archivo daemon_boli_start.sh en la carpeta:
c:\Archivos de programa\Docker toolbox\boli\
Nota 4:
El error:
Invalid reference format: repository name must be lowercase
No aparece más cuando se ejecuta el siguiente comando:
docker run -dit --name boli -p 3893:3893 -v "/c/users/mydocker:/opt/boli/bolidata" bolicoin-core-alpine:v2.0.0.2