diff --git a/Dockerfile b/Dockerfile
index 6a18baa..bd0f38c 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -2,7 +2,7 @@
 FROM docker.io/library/archlinux:base-devel
 
 # Install dependencies
-RUN pacman -Syu --needed --noconfirm pacman-contrib namcap git
+RUN pacman -Syu --needed --noconfirm pacman-contrib namcap git bash procps-ng
 
 # Setup user
 RUN useradd -m builder && \
diff --git a/action.yml b/action.yml
index a479ba6..a031adf 100644
--- a/action.yml
+++ b/action.yml
@@ -39,6 +39,22 @@ inputs:
     description: 'Resolve dependencies using paru'
     default: 'false'
     required: false
+  pkg:
+    description: 'Copy built packages to workdir'
+    default: 'false'
+    required: false
+  copy_all_sources:
+    description: 'Copy all files in the source directory to the build directory'
+    default: 'false'
+    required: false
+  makepkg_gpg:
+    description: 'GPG keys that will be passed to gpg --recv-keys for dowloading'
+    default: ''
+    required: false
+  mirror:
+    description: 'Specify mirror to be used'
+    default: ''
+    required: false
   update_archlinux_keyring:
     description: 'Update archlinux-keyring'
     default: 'true'
@@ -46,7 +62,7 @@ inputs:
 
 runs:
   using: 'docker'
-  image: 'docker://ghcr.io/heyhusen/archlinux-package-action:2'
+  image: 'Dockerfile'
   args:
     - ${{ inputs.path }}
     - ${{ inputs.pkgver }}
@@ -56,4 +72,8 @@ runs:
     - ${{ inputs.flags }}
     - ${{ inputs.namcap }}
     - ${{ inputs.aur }}
+    - ${{ inputs.pkg }}
+    - ${{ inputs.mirror }}
+    - ${{ inputs.makepkg_gpg }}
+    - ${{ inputs.copy_all_files }}
     - ${{ inputs.update_archlinux_keyring }}
diff --git a/entrypoint.sh b/entrypoint.sh
index 42cc504..e45ed64 100755
--- a/entrypoint.sh
+++ b/entrypoint.sh
@@ -10,9 +10,22 @@ cd $HOME
 mkdir gh-action
 cd gh-action
 cp -rfv "$GITHUB_WORKSPACE"/.git ./
-cp -fv "$WORKPATH"/PKGBUILD ./
+
+if [[ $INPUT_COPY_ALL_SOURCES == true ]]; then
+    cp -fv "$WORKPATH"/* ./
+else
+
+    cp -fv "$WORKPATH"/PKGBUILD ./
+fi
 echo "::endgroup::"
 
+# Set mirror
+if [[ -n $INPUT_MIRROR ]]; then
+    echo "::group::Setting mirror to $INPUT_MIRROR"
+    sudo bash -c "echo Server = ${INPUT_MIRROR@Q} > /etc/pacman.d/mirrorlist"
+    echo "::endgroup::"
+fi
+
 # Update archlinux-keyring
 if [[ $INPUT_ARCHLINUX_KEYRING == true ]]; then
     echo "::group::Updating archlinux-keyring"
@@ -67,6 +80,13 @@ if [[ $INPUT_AUR == true ]]; then
     echo "::endgroup::"
 fi
 
+# import gpg keys into keyring
+if [[ -n $INPUT_MAKEPKG_GPG ]]; then
+    echo "::group::Import GPG keys into keyring"
+    gpg --recv-keys $INPUT_MAKEPKG_GPG
+    echo "::endgroup::"
+fi
+
 # Run makepkg
 if [[ -n $INPUT_FLAGS ]]; then
     echo "::group::Running makepkg with flags"
@@ -74,6 +94,13 @@ if [[ -n $INPUT_FLAGS ]]; then
     echo "::endgroup::"
 fi
 
+# Copy built packages back to workdir if user specified
+if [[ $INPUT_PKG == true ]]; then
+    echo "::group::Copy built packages to workdir"
+    sudo cp -fv *.pkg.tar.* "$WORKPATH"/
+    echo "::endgroup::"
+fi
+
 echo "::group::Copying files from $HOME/gh-action to $WORKPATH"
 sudo cp -fv PKGBUILD "$WORKPATH"/PKGBUILD
 if [[ -e .SRCINFO ]]; then