小编Cam*_*son的帖子

git:如何从 git 历史记录中删除当前不存在的*所有*文件?

我看过几篇关于如何从所有 git 历史记录中删除单个文件的文章和问题。示例:如何从 Git 存储库的提交历史记录中删除/删除大文件?

\n

我想要做的是删除当前不存在于 master 分支头部的所有文件。

\n

我的用例是,我small从一个整体存储库(称为 )中分离出一个较小的存储库(称为monolith)。我想在创建时保留 git 历史记录small,但仅保留相关的git 历史记录。

\n

首先,我small在 GitHub 上创建了一个新的存储库。然后,在我的笔记本电脑上,我将其作为远程名称添加origin-small到我的本地monolith存储库中,并将 master 分支的当前状态推monolith送到origin-small

\n

origin-small然后,我从 中删除了远程monolith,更改了目录,并small从 GitHub 进行了克隆。Voil\xc3\xa0,我有一份原始存储库的副本,monolith及其完整的历史记录。

\n

但是,历史上有大量文件small不再相关,并且它们使存储库变得臃肿。

\n

我想做的是:

\n
    \n
  1. 从 中删除所有不需要的文件small
  2. \n
  3. 运行命令来清除我刚刚删除的文件的整个 git 历史记录。
  4. \n
\n

有没有办法用一个命令来做到这一点?或者我是否需要git filter-branch为每个要删除的文件/目录运行一次?

\n

git

13
推荐指数
1
解决办法
3761
查看次数

`try_files` 不适用于 nginx docker 镜像

我有一个简单的 Angular 单页应用程序,我正在尝试使用 Nginx docker 映像版本 1.17.1 来提供该应用程序。

在 my 中Dockerfile,我构建并打包 Angular,然后将生成的文件复制到 nginx 映像。

FROM node:12.6.0 AS package-stage
WORKDIR /app
COPY ./angular/package.json ./angular/package-lock.json ./
RUN npm install
COPY ./angular/. ./
RUN npm run ng build -- --configuration=production

FROM nginx:1.17.1
COPY --from=package-stage /app/dist/* /usr/share/nginx/html/
COPY ./nginx/. /
Run Code Online (Sandbox Code Playgroud)

最后COPY一步将我的 nginx 配置复制到映像中。目前,这只是/etc/conf.d/default.conf。我只更改了该文件中的 1 行,如下所示:

server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;  <-- Added by me
    } …
Run Code Online (Sandbox Code Playgroud)

nginx docker angular

5
推荐指数
1
解决办法
4262
查看次数

Dockerfile:$HOME 已设置,但在使用它定义其他环境变量时变为空白

我有一个简单的 Dockerfile,如下所示:

FROM alpine:3

RUN echo "$HOME"        # Prints '/root'
ENV OTHER_HOME="$HOME"
RUN echo "$OTHER_HOME"  # Prints nothing!

RUN echo "$PATH"        # Prints '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
ENV OTHER_PATH="$PATH"
RUN echo "$OTHER_PATH"  # Prints '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
Run Code Online (Sandbox Code Playgroud)

我是这样构建的:

docker build . --no-cache
Run Code Online (Sandbox Code Playgroud)

输出结果令人困惑。$OTHER_PATH按预期打印,但$OTHER_HOME为空白。谁能解释这种行为?

% docker build . --no-cache
Sending build context to Docker daemon  335.4kB
Step 1/7 : FROM alpine:3 AS build-stage
 ---> e7d92cdc71fe
Step 2/7 : RUN echo "$HOME"
 ---> Running in f9cd2769cd78
/root
Removing intermediate container f9cd2769cd78
 ---> d13f007a1fdf …
Run Code Online (Sandbox Code Playgroud)

docker

5
推荐指数
2
解决办法
1878
查看次数

GCP GKE:服务帐户“正在尝试授予当前未持有的 RBAC 权限”

我正在设置 CI/CD 管道,用于以自动化方式部署基于 Kubernetes 的应用程序。此部署的一部分涉及创建其他服务帐户及其关联角色。

\n

当我的管道运行时,部署失败并显示以下错误消息:

\n
Error: roles.rbac.authorization.k8s.io "mongodb-kubernetes-operator" is forbidden: user "cicd-bot@my-project.iam.gserviceaccount.com" (groups=["system:authenticated"]) is attempting to grant RBAC permissions not currently held:\n\xe2\x94\x82 {APIGroups:[""], Resources:["configmaps"], Verbs:["list" "watch" "create" "update" "patch" "get" "delete"]}\n\xe2\x94\x82 {APIGroups:[""], Resources:["pods"], Verbs:["list" "watch" "create" "update" "patch" "get" "delete"]}\n\xe2\x94\x82 {APIGroups:[""], Resources:["secrets"], Verbs:["list" "watch" "create" "update" "patch" "get" "delete"]}\n\xe2\x94\x82 {APIGroups:[""], Resources:["services"], Verbs:["list" "watch" "create" "update" "patch" "get" "delete"]}\n\xe2\x94\x82 {APIGroups:["apps"], Resources:["statefulsets"], Verbs:["list" "watch" "create" "update" "patch" "get" "delete"]}\n\xe2\x94\x82 {APIGroups:["mongodbcommunity.mongodb.com"], Resources:["mongodbcommunity"], Verbs:["list" "watch" "update" "patch" "get"]}\n\xe2\x94\x82 {APIGroups:["mongodbcommunity.mongodb.com"], Resources:["mongodbcommunity/finalizers"], Verbs:["list" …
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform kubernetes

5
推荐指数
1
解决办法
5397
查看次数

Kafka Connect FileStreamSink 连接器删除 JSON 消息的引号并将冒号更改为等号

概括

当我与控制台制作人一起传输此内容时

{"id":1337,"status":"example_topic_1 success"}
Run Code Online (Sandbox Code Playgroud)

我从我的文件流消费者那里得到这个

/data/example_topic_1.txt

{id=1337, status=example_topic_1 success}
Run Code Online (Sandbox Code Playgroud)

这对我来说是一个主要问题,因为如果不假设引号曾经在哪里,就无法恢复原始 JSON 消息。如何将消息输出到文件,同时保留引号?

细节

  1. 首先,我启动文件接收器连接器。
    # sh bin/connect-standalone.sh \
    >   config/worker.properties \
    >   config/connect-file-sink-example_topic_1.properties
    
    Run Code Online (Sandbox Code Playgroud)
  2. 其次,我启动控制台消费者(也内置于 Kafka),以便我可以轻松地通过视觉确认消息是否正确传递。
    # sh bin/kafka-console-consumer.sh \
    >   --bootstrap-server kafka_broker:9092 \
    >   --topic example_topic_1
    
    Run Code Online (Sandbox Code Playgroud)
  3. 最后,我启动一个控制台生成器来发送消息,然后输入一条消息。

    # sh bin/kafka-console-producer.sh \
    >   --broker-list kafka_broker:9092 \
    >   --topic example_topic_1
    
    Run Code Online (Sandbox Code Playgroud)

    从控制台消费者中,消息会正确弹出,并带有引号。

    {"id":1337,"status":"example_topic_1 success"}
    
    Run Code Online (Sandbox Code Playgroud)

    但我从 FileStreamSink 消费者那里得到了这个:

    /data/example_topic_1.txt

    {id=1337, status=example_topic_1 success}
    
    Run Code Online (Sandbox Code Playgroud)

我的配置

配置/worker.properties

offset.storage.file.filename=/tmp/example.offsets

bootstrap.servers=kafka_broker:9092
offset.flush.interval.ms=10000

key.converter=org.apache.kafka.connect.storage.StringConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
value.converter.schemas.enable=false
Run Code Online (Sandbox Code Playgroud)

配置/连接文件接收器-example_topic_1.properties

name=file-sink-example_topic_1
connector.class=FileStreamSink
tasks.max=1
file=/data/example_topic_1.txt
topics=example_topic_1
Run Code Online (Sandbox Code Playgroud)

apache-kafka apache-kafka-connect

2
推荐指数
1
解决办法
1038
查看次数

helm:“查找”函数始终返回空地图

相关文档:https://helm.sh/docs/chart_template_guide/functions_and_pipelines/#using-the-lookup-function

我的头盔版本:

$ helm version
version.BuildInfo{Version:"v3.4.1", 
GitCommit:"c4e74854886b2efe3321e185578e6db9be0a6e29", 
GitTreeState:"dirty", GoVersion:"go1.15.4"}
Run Code Online (Sandbox Code Playgroud)

重现的最小示例:

  1. 创建一个新的 Helm Chart 并安装它。
    $ helm create my-chart
    $ helm install my-chart ./my-chart
    
    Run Code Online (Sandbox Code Playgroud)
  2. 创建一个简单的 ConfigMap。
    # my-chart/templates/configmap.yaml
    
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: my-configmap
    data:
      someKey: someValue
    
    Run Code Online (Sandbox Code Playgroud) 升级现有图表以便应用 ConfigMap。
    $ helm upgrade my-chart ./my-chart
    
    Run Code Online (Sandbox Code Playgroud)
  3. 确认 ConfigMap 存在。
    $ kubectl -n default get configmap my-configmap
    
    Run Code Online (Sandbox Code Playgroud) 其返回结果符合预期:
    NAME           DATA   AGE
    my-configmap   1      12m
    
    Run Code Online (Sandbox Code Playgroud)
  4. 尝试使用该lookup函数来引用现有的ConfigMap。
    # my-chart/templates/configmap.yaml
    
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: my-configmap
    data:
      someKey: someValue
      someOtherKey: {{ (lookup …
    Run Code Online (Sandbox Code Playgroud)

kubernetes-helm

2
推荐指数
1
解决办法
5537
查看次数

新的 maven 项目无法编译:“App.java:[1,8] &lt;identifier&gt; expected”

我的步骤:

$ mkdir maven-test
$ cd maven-test
$ mvn archetype:generate
Run Code Online (Sandbox Code Playgroud)

然后我进入

  • 1313 对于快速入门原型。

  • 8 对于快速入门原型版本 1.4。

  • info.cameronhudson.18655 对于 groupId

  • lab1 对于 artifactId

  • 1.0 对于快照版本

  • public-recommendation-service 对于包名

  • Y 确认

然后我进入新项目并尝试安装它。

$ cd lab1
$ mvn clean install
Run Code Online (Sandbox Code Playgroud)

这产生了以下编译错误。

[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /Users/cameronhudson/Repositories/CMU/18-655_Lab_1_Public_Recommendation_Service/lab1/src/main/java/public-recommendation-service/App.java:[1,8] <identifier> expected
[ERROR] /Users/cameronhudson/Repositories/CMU/18-655_Lab_1_Public_Recommendation_Service/lab1/src/main/java/public-recommendation-service/App.java:[1,15] class, interface, or enum expected
[INFO] 2 errors
Run Code Online (Sandbox Code Playgroud)

App.java 包含(默认情况下):

package public-recommendation-service;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( …
Run Code Online (Sandbox Code Playgroud)

java archetypes maven generate

1
推荐指数
1
解决办法
1589
查看次数