Giltab CI 和图像平台

Giltab CI and images platform

提问人:brcebn 提问时间:11/10/2023 最后编辑:brcebn 更新时间:11/11/2023 访问量:68

问:

我在 Gitlab 上有一个 Rails 应用程序和整个 CI。

我已经构建了一个 GitlabCI 映像(存储在 Gitlab 注册表中),但我遇到了 Spring 的问题。

当我使用从配备 M2 处理器的 Macbook 构建的映像时,找不到 Spring。

这是坏工作和好工作之间的区别。

# Good
[TEST PROF INFO] Spring detected

# Bad
Starting Spring server with `/usr/local/bundle/gems/spring-4.1.1/bin/spring server --background` timed out after 20 seconds

当它导致和作业失败时。badMigrations are pending.

我能够修复构建映像(仅适用于 CI)的问题--platform linux/amd64

在本地,Spring 没有问题,没有待处理的迁移等。

更重要的是,如果我在运行之前强制运行迁移,则出于同样的原因,它无论如何都会失败。rspec

老实说,我不知道 Gitlab Runner 上 ARM 上的 Spring 发生了什么。

这是我用于构建映像的 Dockerfile。

FROM ruby:3.2.2

EXPOSE 3000

LABEL "maintainer"="benebrice"
LABEL "app_type"="backend"
LABEL "service_type"="API"

USER root

ARG RAILS_ENV=development

ENV BUNDLER_VERSION 2.4.19
ENV APP /rails

RUN apt-get update && apt-get install -y lsb-release
# Yarn source
RUN curl -sS "https://dl.yarnpkg.com/debian/pubkey.gpg" | apt-key add -
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
RUN apt-key adv --refresh-keys --keyserver keyserver.ubuntu.com

# PSQL 14
RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list

RUN apt-get update -qq && apt-get install -y net-tools nodejs postgresql-client-14 cmake nano zsh unzip yarn python3-pip jq psmisc

WORKDIR $APP

# Fix slow IRB issue
# issue: https://github.com/ruby/irb/issues/43
RUN echo 'IRB.conf[:USE_MULTILINE] = false' > ~/.irbrc
RUN echo 'set linenumbers' > ~/.nanorc

# Main app
COPY Gemfile /rails/Gemfile
COPY Gemfile.lock /rails/Gemfile.lock

RUN gem install bundler -v $BUNDLER_VERSION

# Main app
RUN bundle install
RUN gem clean

RUN rm -r /rails/*

# Add a script to be executed every time the container starts.
COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh

# Start the main process.
CMD ["bundle", "exec", "puma", "-C", "config/puma.rb", "config.ru"]

弹簧 rspec arm gitlab-ci x86-64

评论

0赞 sytech 11/11/2023
能否提供用于生成映像的 Dockerfile?您的 GitLab 运行器是使用 ARM 架构还是使用 AMD64?
0赞 brcebn 11/11/2023
嗨,@sytech我已经添加了 Dockerfile。对于 GitLab 运行器,我不知道。我以为是《文摘》推导出来的。🤔
0赞 brcebn 11/11/2023
我只使用共享运行器。我需要指定一些东西吗?实际上,使用不同计算机的多个开发人员可以构建映像。我想为他们所有人解决这个问题,所以无论构建映像的计算机如何,管道仍然很好。

答: 暂无答案