Contenedor docker con gitea

Contenedor docker con gitea

Aprende a configurar un contenedor Docker con Gitea para gestionar repositorios Git de forma sencilla y segura. Este tutorial te guía a través de los pasos para una implementación exitosa.

¿Qué es gitea?

Gitea es una herramienta open-source para alojar proyectos utilizando un sistema de control de versiones GIT. Nos permite crear algo parecido a un clon de github.

Para saber más visita el enlace de su web

Requisitos

Para utilizar gitea necesitamos tener instalado mysql o un contenedor docker con mysql.

Si no dispones ya de uno puedes crearlo desde aquí

Por buenas prácticas es recomendable crear la base de datos y un usuario que haga uso de la base de datos. No es recomendable usar el usuario root de mysql.

CREATE DATABASE 'gitea' /*!40100 DEFAULT CHARACTER SET utf8 */;
CREATE USER 'gitea'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON 'gitea'.* TO 'gitea'@'%';

Creando el contendor con docker-compose

Creamos un directorio para alojar el fichero. Por ejemplo, en mi caso.

mkdir /opt/gitea

Cambiamos al directorio creado y añadimos el fichero docker-compose.yml. Puedes crearlo con un editor de texto como nano o vim o descargarlo de aquí

version: "3.3"

services:
  gitea:
    container_name: gitea
    restart: always
    image: gitea/gitea:latest
    volumes:
      - /srv/gitea:/data      
    ports:
      - "10022:22"
      - "13000:3000" 

services : definición de contenedores, en este caso sólo “gitea” container_name: nombre para denominar el contenedor image : nombre de la imagen de dockerhub de gitea ports : referencia de los puertos externos con los internos del contenedor (Externo:Interno). Conectamos el puerto 13000 y 10022(para ssh) del servidor con el 3000, 22 del contenedor. volumes : referencia de directorios externos con los internos del contenedor (Externo:Interno). El directorio data almacena todos los repositorios git. Esto lo he añadido por si se quiere realizar un backup de los datos, no es necesario conectarse al conteneder. Puede realizarse desde fuera. restart: “always”, siempre.

Crear y arrancar el contenedor con el siguiente comando:

docker-compose up -d

Listamos los contenedores docker y vemos que está arrancando y funcionando.

docker ps

Ahora abrimos un navegador web y probamos a conectarnos al contenedor.

http://ip-del-servidor:13000

Nos aparece la pantalla de configuración inicial de gitea que tendremos que ir completando con los datos de configuración.

<div class="pswp__container">
  <div class="pswp__item"></div>
  <div class="pswp__item"></div>
  <div class="pswp__item"></div>
</div>

<div class="pswp__ui pswp__ui--hidden">
<div class="pswp__top-bar">
  
  <div class="pswp__counter"></div>
  <button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
  <button class="pswp__button pswp__button--share" title="Share"></button>
  <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
  <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
  
  
  <div class="pswp__preloader">
    <div class="pswp__preloader__icn">
      <div class="pswp__preloader__cut">
        <div class="pswp__preloader__donut"></div>
      </div>
    </div>
  </div>
</div>
<div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
  <div class="pswp__share-tooltip"></div>
</div>
<button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
</button>
<button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
</button>
<div class="pswp__caption">
  <div class="pswp__caption__center"></div>
</div>
</div>
</div>

*Si no creas el usuario administrador, se convertirá en administrador el primer usuario que se registre.

Pulsamos sobre “Instalar gitea” y una vez terminado el proceso, veremos en http://ip-del-servidor:13000 la página principal de gitea para poder empezar a crear organizaciones, usuarios, repositorios, etc..