【发布时间】:2022-01-31 10:18:11
【问题描述】:
我有这个 Dockerfile:
FROM php:8.0
RUN apt update && apt install -y nano supervisor cron curl && docker-php-ext-install sockets && docker-php-ext-enable sockets
COPY docker/crontab /etc/cron.d/crontab
COPY docker/supervisord.conf /etc/supervisor/supervisord.conf
COPY docker/supervisord-programs.conf /etc/supervisor/conf.d/app.conf
COPY . /home/mysignature/app
RUN chmod 0644 /etc/cron.d/crontab
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \
&& php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" \
&& php composer-setup.php \
&& php -r "unlink('composer-setup.php');" \
&& mv composer.phar /usr/local/bin/composer
WORKDIR /home/mysignature/app
RUN composer install
RUN crontab /etc/cron.d/crontab
CMD ["supervisord", "-c", "/etc/supervisor/supervisord.conf"]
我有一个错误:
/usr/src/php/ext/sockets/sendrecvmsg.c:在函数“init_ancillary_registry”中:
/usr/src/php/ext/sockets/sendrecvmsg.c:128:19:错误:“sizeof”对不完整类型“struct cmsgcred”的无效应用
128 | PUT_ENTRY(sizeof(struct cmsgcred), 0, 0, from_zval_write_ucred,
| ^~~~~~
/usr/src/php/ext/sockets/sendrecvmsg.c:99:17:注意:在宏“PUT_ENTRY”的定义中
99 | entry.size = sizev;
| ^~~~~
/usr/src/php/ext/sockets/sendrecvmsg.c:129:36: 错误: 'SCM_CREDS' 未声明(在此函数中首次使用)
129 | to_zval_read_ucred,SOL_SOCKET,SCM_CREDS);
| ^~~~~~~~~
/usr/src/php/ext/sockets/sendrecvmsg.c:105:19:注意:在宏“PUT_ENTRY”的定义中
105 | key.cmsg_type = 类型;
| ^~~~
/usr/src/php/ext/sockets/sendrecvmsg.c:129:36:注意:每个未声明的标识符对于它出现的每个函数只报告一次
129 | to_zval_read_ucred,SOL_SOCKET,SCM_CREDS);
| ^~~~~~~~~
/usr/src/php/ext/sockets/sendrecvmsg.c:105:19:注意:在宏“PUT_ENTRY”的定义中
105 | key.cmsg_type = 类型;
| ^~~~
make: *** [Makefile:216: sendrecvmsg.lo] 错误 1
【问题讨论】: