-
Notifications
You must be signed in to change notification settings - Fork 87
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
Dockerfile refactor #153
Dockerfile refactor #153
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great to me, thanks very much! I'm not on a machine on which I can easily test these right now, and the CI unfortunately doesn't have any testing for them yet, so I assume they run on your machine (in which case they should, given it's Docker, run everywhere)?
There are some unforeseen problems I'm fixing to get this finalized.
Forgive me if I'm wrong, but from what I understand currently, the missing Successful compilation via Update: ✨ The server is working! ✨ Currently, version The errors I'm seeing are related to |
So everything is working now except for the v0.3.3 one? Could it be pulling in a |
I'm glad to see this moving forward! I like the changes made by @allen-woods. Been wanting to do an update PR myself, but too short on time lately. Popping in to say there is this little gotcha that at some point, I think at version Hope this is gonna be merged. I'm learning from the changes proposed. Thank you. |
Correct.
I will be testing all variations of the Dockerfile code today after I've made my adjustments to all of them, then I'll circle back to the 0.3.3 image in hopes of correcting what may be happening there.
Thank you, I was hoping I wasn't stepping on any toes by doing a refactor to your work.
Thanks for the catch (I found it after a couple of failed builds). The manual
I take it this means the project requires the creation of an error page beyond what
Awesome! I'm hoping I can contribute to this project going forward. I haven't had the time myself, but now I do (for a while). |
The tiny example is missing defined error pages, yes. It can work with the defaults in development, but they're disabled in production. I'll add some to it this evening! |
👍🏻 Thanks! Edit: The problems compiling older versions can be fixed using |
I think the issue might be that we need to get a specific tag of the |
The error pages are added to the tiny example now, so deployment of that should work now. Please let me know if it doesn't! |
@arctic-hen7 pinning to a tag is already in place. Currently, the codeload link grabs the I'm with @allen-woods on the thought the specific |
So it is, I misread that codeload line I think. @allen-woods note that Bonnie is just a command runner, it won't be crashing, it'll be the underlying commands it's running. I think it might be best to leave the size optimizations plugin completely out of it, since I'm very likely to remove it altogether in the next version, which removes |
Thank you @phaleth and @arctic-hen7 for both of your input during this process. I believe I have isolated the problem that's been common across all of the failed builds. After running I'll get to work on this tonight and try to get |
I am proud to announce that I have completed my work on all of the dockerfile docs. I have personally tested this documentation and confirm that everything 'Just Works™', with the following minor caveat: Currently, There are two bugs I provided patches for in the Dockerfile examples I wrote.
Edit: I have tested these builds on a first generation M1 MacBook Pro, so there are no issues on M1 machines. |
Regarding the plugin support in v0.4.x, please see here. Could you show me where in In terms of problem 2, that's due to a longstanding let lib_contents_with_wee_alloc = lib_contents.replace(
"#![allow(clippy::unused_unit)]",
&format!("#![allow(clippy::unused_unit)]\n{}\n", WEE_ALLOC_DEF),
); That code is still there, so I'm not sure why that would break. Also, the website is running on v0.3.5 with the plugin without problems, which means there might be something deeper going on here. Could you post the contents of |
Thank you, I had no idea that was in the roadmap.
Locations of unescaped backticks are as follows:
Please advise if the following data indicates the The error mesage as printed by
Unabridged contents of
|
… add patching of clippy error via gawk.
Yes, I think that will all be solved by the deprecation of the size opts plugin. Usefully, those optimizations are now bundled into As for those backtick issues, I'll take a look at those soon. Thanks! |
Glad to hear that.
Glad to be of help. 😸 I have identified a bug when building As of my latest commit I have made changes to the
Currently, the What may help make the deployment on Docker more user friendly is the creation of official images. |
Fantastic! Yeah, I think official images would be very helpful. Let me know when you think these are done, and I will look into publishing them to the official Docker registry! Also, v0.4.0 is pretty stable on optimizations now I think, so if you want to do that Dockerfile as well, you're more thwn welcome to! (No pressure of you don't, of course.) The only major differences are that any optimizations go in the project root |
…ework source over curl.
Per commit 7c87926, I have made the following changes in
I made this last change because, in practice, running the following commands are synonymous:
More importantly, however, this change proved necessary to unify version numbers for dependencies across the entire framework. These dependencies are as follows:
In certain situations, and depending on the example, deployments can fail because of incompatible versions of these dependencies. Installing binaries with This way, uniformity of semvers can be achieved, as well as allow for greater flexibility when making adjustments to an example. That said, I only anticipate needing to provide this approach for versions 0.3.5 and lower with respect to I look forward to having all versions of the docker deployment documentation completed in the very near future. I'm revising the deployed examples to better represent the framework's capabilities, so work is progressing a touch slower than expected. |
@allen-woods, it's been a while, are you still working on this? I'm happy to accept a pared back version if that's more convenient for you. |
Worth noting that Docker WASM is now a thing: https://docs.docker.com/desktop/wasm/ Perhaps a sensible next step of exploration after this PR is merged? |
@erlend-sh to my understanding, Perseus' usage of Docker right now is purely for engine-side work, where Wasm isn't really relevant right now. That having been said, especially given the growing prevalence of server-side Wasm, I think this is an excellent idea. (It would also allow Perseus to integrate with Lunatic, a new async framework.) This would require changing every target gate in Perseus, however, to make sure the compiler understands the difference between browser-side Wasm and engine-side Wasm. A simple find and replace should achieve this though. |
@allen-woods are you likely to continue work on this any time soon, or shall I close this? |
@allen-woods I'm going to close this, it's been quite a while, but let me know if you (or anybody else!) want to pick this back up, and I'll happily reopen it. |
Fixed multiple issues with Dockerfile code blocks in docs, as follows:
tar
.curl -L
makes use ofwget
unnecessary forbinaryen
.curl -o
for more manageable filenames in container.tar -z
to enablegzip
extraction for all downloaded files.sed -i
to convert prepend oflib.rs
away fromcat -
.sed
by providing multiple filter clauses.