我创建了一个.deb
包氟PM。该包非常简单,因为它只是运行一个docker 撰写超过这 docker-compose.yml
文件。
该包由 3 个文件组成:
.
├── diagnosticator
├── diagnosticator.1
└── docker-compose.yml
其权限diagnosticator
如下:
-rw-rw-r-- 1 enrico enrico 554 feb 12 21:23 diagnosticator
这是我的diagnosticator
脚本,只需要运行docker-compose.yml
:
#!/usr/bin/env bash
#
# == diagnosticator 0.1.0 ==
#
DOCKER_COMPOSE_FILE=/usr/lib/diagnosticator/docker-compose.yml
if [ -s $DOCKER_COMPOSE_FILE ]; then
docker-compose pull && docker-compose up
else
echo ' !!! ERROR !!!'
echo ' ---> missing docker-compose.yml <--- '
fi
exit 0
这里是fpm
用于构建它的命令:
fpm \
-s dir -t deb \
--deb-use-file-permissions \
-p diagnosticator-0.1.0-1-any.deb \
--name diagnosticator \
--license agpl3 \
--version 0.1.0 \
--architecture all \
--depends bash \
--description "Diagnosticator local app" \
--url "https://diagnosticator.com" \
--maintainer "Enrico Cocchi" \
diagnosticator=/usr/bin/diagnosticator diagnosticator.1=/usr/share/man/man1/diagnosticator.1 docker-compose.yml=/usr/lib/diagnosticator/docker-compose.yml
当我sudo dpkg -i diagnosticator-0.1.0-1-any.deb
一切正常并且文件放置在它们应该放置的位置时,但是如果我尝试运行它(带和不带sudo
):
$ diagnosticator
bash: /usr/bin/diagnosticator: Permission denied
$ sudo diagnosticator
sudo: diagnosticator: command not found
我希望用户能够在没有sudo
.我尝试用谷歌搜索并在这里搜索任何解决方案,但我找不到任何解决方案。有人知道我在这里做错了什么吗?
答案1
您的diagnosticator
脚本需要可执行:运行
chmod 755 diagnosticator
并再次构建你的包。