Acciones de Github: crea una acción de ejecución rápida

3

Estoy creando una acción de contenedor de github docker que involucra una serie de dependencias python, node, paquetes pypi y paquetes npm. Para acelerar la acción, muevo gran parte de la instalación de dependencias desde el punto de entrada al Dockerfile. Ahora mi acción se está ejecutando muy rápido, pero lleva mucho tiempo construir la acción cada vez.

¿Hay alguna manera de que la acción pueda preconstruirse, o necesito publicar la imagen de la ventana acoplable de acciones en un repositorio en algún lugar y alimentar DESDE mi imagen personalizada?

Como referencia, aquí está mi Dockerfile.

FROM python:3

LABEL "com.github.actions.name"="kedro-action"
LABEL "com.github.actions.description"="A Github Action to run kedro commands"
LABEL "com.github.actions.icon"="it-branch"
LABEL "com.github.actions.color"="black"

LABEL "repository"="http://github.com/WaylonWalker/kedro-action"
LABEL "maintainer"="Waylon Walker <[email protected]>"

RUN apt-get update
RUN apt-get install -y jq

ENV PYENV_ROOT /root/.pyenv
ENV PATH $PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH
RUN curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

### INSTALL PYTHON ###
RUN pyenv install 3.7.6
RUN pyenv global 3.7.6
RUN python -m pip install --upgrade pip
RUN pip install kedro
RUN pip install kedro-viz

### INSTALL NODEJS ###
RUN apt-get install curl -y
RUN curl -sL https://deb.nodesource.com/setup_11.x | bash -
RUN apt-get install nodejs -y

### CLONE KEDRO-STATIC-VIZ ###
RUN mkdir ~/build_dir && cd ~/build_dir
RUN git clone https://github.com/WaylonWalker/kedro-static-viz.git
RUN cd kedro-static-viz
RUN npm install -g gatsby-cli
RUN cd kedro-static-viz && npm install && npm audit fix


ADD entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
1

Puede precompilar la imagen de Docker para su acción y luego en el action.ymlarchivo puede especificar la imagen precompilada en lugar de Dockerfile. Consulte la documentación aquí .

Este es un ejemplo de una de mis acciones que está prediseñada aquí .

runs:
  using: 'docker'
  image: 'docker://peterevans/dockerhub-description:2.1.0'
1
  • ¡Absolutamente por favor haz esto! Me enoja cómo github ha dejado tan poco claro que las personas deberían publicar imágenes, no archivos docker para sus acciones. Una pequeña cosa. Debe reconstruir la imagen de vez en cuando para desplegar los paquetes de sistema operativo más nuevos que solucionarán las vulnerabilidades de seguridad. 30 abr.20 a las 1:16