Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker doesn't support i18n testing, problem with outdated base image #8362

Open
MirKml opened this issue Jan 20, 2025 · 4 comments
Open

Docker doesn't support i18n testing, problem with outdated base image #8362

MirKml opened this issue Jan 20, 2025 · 4 comments
Labels
STATE: Issue accepted An issue has been reproduced. TYPE: bug The described behavior is considered as wrong (bug).

Comments

@MirKml
Copy link

MirKml commented Jan 20, 2025

What is your Scenario?

When I want to test pages in another language (Czech particularly) then English in Docker on CI, it doesn't work.
I discovered that it's necessary to install chromium-lang package

FROM testcafe/testcafe:3.7.1
USER root
RUN apk --no-cache add chromium-lang

This works for some weeks. But suddenly chromium doesn't start at all.
The reason was old base testcafe image. It contained old base libs for chromium. It was necessary to call always apk upgrade before apk add.
But it takes long time - it updates whole distro. It's also risky at all. It can upgrade e.g. node, which isn't compatible with testcafe in base image.

So can you add chromium-lang into your base image? What is your recommendation for running current updated chrome in docker with your base image? Can you make your base image up to date with latest browser releases?

What is the Current behavior?

Extending base docker image is necessary, but has drawbacks - updates complete distro, takes time and can break testcafe itself.

What is the Expected behavior?

Add chromium-lang into base image, this is mandatory. Tests multi-language webs should be possible without extending base image.
Regularly release new testcafe image when new browser is released or every month or two?

What is the public URL of the test page? (attach your complete example)

doesn't important

What is your TestCafe test code?

doesn't important

Your complete configuration file

No response

Your complete test report

No response

Screenshots

No response

Steps to Reproduce

In main description

TestCafe version

3.7.1

Node.js version

22.11.0

Command-line arguments


Browser name(s) and version(s)

No response

Platform(s) and version(s)

No response

Other

No response

@MirKml MirKml added the TYPE: bug The described behavior is considered as wrong (bug). label Jan 20, 2025
@testcafe-need-response-bot testcafe-need-response-bot bot added the STATE: Need response An issue that requires a response or attention from the team. label Jan 20, 2025
@Bayheck
Copy link
Collaborator

Bayheck commented Jan 23, 2025

Hello,

Thank you for reaching out to us.

The last TestCafe docker image was built with chromium 131.0.6778.108-r0 from alpine packages. You can update your installation as follows to install a compatible chromium-lang version:

FROM testcafe/testcafe:3.7.1 

USER root 

RUN apk --no-cache add chromium-lang=131.0.6778.108-r0

This way, you should be able to avoid compatibility issues between chromium and chromium-lang. With this approach, you will not need to update complete distro.

Please let us know if this workaround helps.

Regarding

Add chromium-lang into base image, this is mandatory
and
Regularly release new TestCafe image when new browser is released or every month or two

We will add this task to our internal backlog.

@Bayheck Bayheck added STATE: Need clarification An issue lacks information for further research. and removed STATE: Need response An issue that requires a response or attention from the team. labels Jan 23, 2025
@MirKml
Copy link
Author

MirKml commented Jan 23, 2025

Thanks. I will try later this week and let you know. Install particular versions is good solution for effective upgrade.

As I read on https://wiki.alpinelinux.org/wiki/Alpine_Package_Keeper - package version "pinning" can have some problems - some old versions can be deleted - for community packages, edge branch ..
So adding this one into your base image will be safer. Thanks for adding request into internal backlog.

@testcafe-need-response-bot testcafe-need-response-bot bot added the STATE: Need response An issue that requires a response or attention from the team. label Jan 23, 2025
@github-actions github-actions bot removed the STATE: Need clarification An issue lacks information for further research. label Jan 23, 2025
@MirKml
Copy link
Author

MirKml commented Jan 24, 2025

Hm, seems that installing old package doesn't work, log from docker build @Bayheck

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 1.33kB done
#1 DONE 0.2s

#2 [internal] load .dockerignore
#2 transferring context: 71B done
#2 DONE 0.2s

#3 [internal] load metadata for docker.io/testcafe/testcafe:3.7.1
#3 DONE 1.1s

#4 [1/4] FROM docker.io/testcafe/testcafe:3.7.1@sha256:9b25f07469323e3070084fa09a7a91263470c405f6f2dcbf3db341cadbbd57bb
#4 CACHED

#5 [internal] load build context
#5 transferring context: 84.23kB 0.5s done
#5 DONE 0.6s

#6 [2/4] RUN apk --no-cache add chromium-lang=131.0.6778.108-r0
#6 1.826 fetch https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
#6 2.275 fetch https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
#6 4.114 ERROR: unable to select packages:
#6 4.124   chromium-lang-132.0.6834.83-r0:
#6 4.124     breaks: world[chromium-lang=131.0.6778.108-r0]
#6 ERROR: executor failed running [/bin/sh -c apk --no-cache add chromium-lang=131.0.6778.108-r0]: exit code: 1

I see that old version is available in 3.20 alpine branch https://dl-cdn.alpinelinux.org/v3.20/community/x86_64/chromium-lang-131.0.6778.108-r0.apk but how long? It seems that upgrades come in to 3.20 regularly. After a while chromium-lang will be upgraded in 3.20 branch also.
It seems that old chromium-lang version pinning ins't good approach.

@Bayheck Bayheck added STATE: Issue accepted An issue has been reproduced. and removed STATE: Need response An issue that requires a response or attention from the team. labels Jan 27, 2025
Copy link

We appreciate you taking the time to share information about this issue. We reproduced the bug and added this ticket to our internal task queue. We'll update this thread once we have news.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
STATE: Issue accepted An issue has been reproduced. TYPE: bug The described behavior is considered as wrong (bug).
Projects
None yet
Development

No branches or pull requests

2 participants