我正在尝试使用预定义的TARGETARCHarg变量通过 buildkit 创建多架构 docker 映像。
我想做的是 - 我认为 - 类似 bash 变量间接的东西,但我知道这不受支持,并且我正在努力想出替代方案。
这是我所得到的:
FROM alpine:latest
# Buildkit should populate this on build with e.g. "arm64" or "amd64"
ARG TARGETARCH
# Set some temp variables via ARG... :/
ARG DOWNLOAD_amd64="x86_64"
ARG DOWNLOAD_arm64="aarch64"
ARG DOWNLOAD_URL="https://download.url/path/to/toolkit-${DOWNLOAD_amd64}"
# DOWNLOAD_URL must also be set in container as ENV var.
ENV DOWNLOAD_URL $DOWNLOAD_URL
RUN echo "Installing Toolkit" && \
curl -sSL ${DOWNLOAD_URL} -o /tmp/toolkit-${DOWNLOAD_amd64}
Run Code Online (Sandbox Code Playgroud)
...这是一个伪代码,但希望说明我正在尝试做的事情:我想要将$DOWNLOAD_amd64or的值$DOWNLOAD_arm64放入$DOWNLOAD_URL,具体取决于$TARGETARCH设置的内容。 …
我想将任何与管理路由不匹配的路由发送到我的"事件"控制器.这似乎是一个相当普遍的要求,粗略的搜索引发了各种类似的 问题.
据我所知,解决方案似乎在正则表达式中使用负向前瞻.所以我的尝试看起来像这样:
$route['(?!admin).*'] = "event";
Run Code Online (Sandbox Code Playgroud)
..哪个有效.好吧,有点.它确实向我的"事件"控制器发送任何非管理员请求,但是我需要它来传递匹配的实际字符串:so / my-new-event /被路由到/ event/my-new-event /
我试过了:
$route['(?!admin).*'] = "event/$0";
$route['(?!admin).*'] = "event/$1";
$route['(?!admin)(.*)'] = "event/$0";
$route['(?!admin)(.*)'] = "event/$1";
Run Code Online (Sandbox Code Playgroud)
......以及其他一些越来越随机和绝望的排列.所有结果都是404页面.
将匹配的字符串传递给控制器的正确语法是什么?
谢谢 :)
我设置了“杂志文章”内容类型,并具有相应的“杂志编辑者”角色,该角色应具有创建和发布文章的权限。
以管理员身份登录后,我可以在文章节点的节点编辑屏幕(即:/ node / 56157 / edit)的底部编辑屏幕底部看到通常的“发布选项”选项卡,并带有一个用于发布节点的复选框。我还可以在修订页面的admin子菜单中看到Publish链接(即:/ node / 56157 / revisions / 60546 / view)。这都是正确的。
但是:以杂志编辑器身份登录时,我看不到节点编辑屏幕底部的“发布选项”选项卡。仅存在三个选项卡:“ URL路径设置”,“修订信息”和“元标记”。查看未发布的修订版时,我也看不到“发布”链接。我希望能够以杂志编辑器身份登录时发布文章节点。
在杂志编辑器的角色权限(/ admin / people / permissions / 11)下,选中了以下复选框:
节点:
修订:
谷歌搜索似乎建议我需要在“节点”下设置“管理节点”权限。但是,我在看起来像“管理节点”的列表中找不到权限。
为什么发布选项不可用?
我正在尝试在 EC2 ubuntu 服务器上设置客户端 SFTP 空间,访问仅限于该用户的主目录。只有大约 6000 个其他主题与此相关,而且我已经在其他选项卡中打开了其中的大部分。这看起来很简单。
我弄完了:
$ sudo groupadd loginsftp
$ sudo groupadd loginssh
$ sudo adduser sftpuser
$ sudo gpasswd -a sftpuser loginsftp
$ sudo chown root:root home/sftpuser
$ sudo su sftpuser
$ groups
> sftpuser loginsftp
Run Code Online (Sandbox Code Playgroud)
我的 /etc/ssh/sshd_config 底部看起来像:
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
UsePAM yes
Match Group loginssh
PasswordAuthentication no
Match Group loginsftp
PasswordAuthentication yes
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Run Code Online (Sandbox Code Playgroud)
.. 我已经重新启动了 ssh 服务。
但我似乎无法限制该用户登录。我仍然可以(从我的本地机器):
$ sftp sftpuser@ec2-server.amazonaws.com
sftpuser@ec2-server.amazonaws.com's password: …Run Code Online (Sandbox Code Playgroud) 我最近继承了一个代码库并发现了这个宝石:
{% if PAGE_EXTRAS.hide_from_sitemap %}
<META NAME="ROBOTS" CONTENT="NOINDEX, FOLLOW">
<META NAME="ROBOTS" CONTENT="INDEX, NOFOLLOW">
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
{% endif %}
Run Code Online (Sandbox Code Playgroud)
我不知道它想做什么。您是否有理由在这样的网站中放置多个明显冲突的机器人标签?或者它真的像我无知的眼睛看起来那么疯狂吗?
作为一些背景,我正在尝试修复带有重复参数的请求,例如:
/products/compare/?ids=554?ids=554
/products/compare/?ids=595,662,726?ids=595,662,726
Run Code Online (Sandbox Code Playgroud)
我的修复 - 有效 - 看起来像这样:
location /products/compare/ {
if ( $args ~ "(ids=[\d,]+)\?ids=[\d,]+" ) {
set $id $1;
rewrite ^.*$ $scheme://$host/$uri$is_args$id? permanent;
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是关于set $id $1;以及为什么有必要
我直接在重写中使用 capture-group变量:$1
rewrite ^.*$ $scheme://$host/$uri$is_args$1? permanent;
Run Code Online (Sandbox Code Playgroud)
但该变量并未被填充。
为什么不?
regex ×2
amazon-ec2 ×1
codeigniter ×1
docker ×1
dockerfile ×1
drupal ×1
meta ×1
multiarch ×1
nginx ×1
permissions ×1
publish ×1
revision ×1
robots.txt ×1
routes ×1
sftp ×1
ubuntu ×1