假设我有一个 AWS Step 函数,其状态是批处理作业,与 Docker 映像关联。
是否有更有效的方法将 Docker 映像与状态关联起来,而不是使用批处理作业 ( arn:aws:states:::batch:submitJob.sync)?创建活动看起来太复杂了。
除了基于 AWS 的文件存储、对象数据库、在单独实例上共享的 Docker 卷之外,是否有任何现实的方法可以在这种“dockerized”状态之间交换数据?例如,在状态之间传输容器化应用程序的 STDOUT 内容?
如何将应用程序级别的错误从 Docker 容器转移(报告)到相应的状态以使其失效,将其标记为“失败”?这取决于应用程序的返回值吗?
我有一个基本的 Docker 镜像:
FROM ubuntu:21.04
WORKDIR /app
RUN apt-get update && apt-get install -y wget bzip2 \
&& wget -qO- https://micromamba.snakepit.net/api/micromamba/linux-64/latest | tar -xvj bin/micromamba \
&& touch /root/.bashrc \
&& ./bin/micromamba shell init -s bash -p /opt/conda \
&& cp /root/.bashrc /opt/conda/bashrc \
&& apt-get clean autoremove --yes \
&& rm -rf /var/lib/{apt,dpkg,cache,log}
SHELL ["bash", "-l" ,"-c"]
Run Code Online (Sandbox Code Playgroud)
并从中派生出另一个:
ARG BASE
FROM $BASE
RUN source /opt/conda/bashrc && micromamba activate \
&& micromamba create --file environment.yaml -p /env
Run Code Online (Sandbox Code Playgroud)
在构建第二个映像时,我收到以下错误:micromamba: command …
我有一个模型和验证规则:
class User extends ActiveRecord implements IdentityInterface
{
...
public function rules()
{
return [
[['username', 'password', 'email'], 'required', 'on' => 'insert'],
[['password', 'email'], 'required', 'on' => 'update'],
]
}
Run Code Online (Sandbox Code Playgroud)
实际上代码不产生验证器。当我删除“on”部分时,一切顺利。
挖掘官方文档并通过 Web 搜索并没有帮助我了解问题所在,以及为什么我不能为不同的操作设置自定义的必填字段。